python - 一个包含 6 个元素的列表中的 3 个数字如何求和?

标签 python python-3.x

例如,我们有一个 6 位数字,我们必须对它的两半求和(例如,123456,我们得到 1 + 2 + 3 和 4 + 5 + 6)。 这是我尝试为其编写的程序:

ticket = int(input("Input your ticket : ")) #ticket input
ticket_list = [int(i) for i in str(ticket)] #make a list
length = len(ticket_list)
mid = length//2
half1 = ticket_list[:mid] 
half2 = ticket_list[mid:] #split the list in two halves
def sum3digits1(mysum): #sum of 1st half
  mysum=0
  for i in range(half1):
    mysum+=int(i)
  return mysum
def sum3digits2(suma): #sum of 2nd half
  suma=0
  for i in range(half2):
    suma+=int(i)
  return suma
a = sum3digits1(ticket_list) 
b = sum3digits2(ticket_list)
print(a, b)

但是,它显示我的程序出错,但我真的不知道应该如何修复。我尝试使用 range() 来计算 3 个元素的总和,但效果不是很好。任何帮助将不胜感激!

最佳答案

既然你已经有了应该工作的例子,我就添加一个解释: range() 将为您提供两个数字之间的所有数字。 (看看 https://www.w3schools.com/python/ref_func_range.asp )如果你只给它一个参数,它会以 0 开头并尝试给你每个数字(在一个标准间隔内,除非你另有说明)直到你给它的数字(虽然不是)。但是你给了它一个数字列表而不是它期望的数字。

另外,作为提议,我是否可以建议您不要在代码中重复自己:例如 sum3digits1 和 sum3digits2 是相同的函数,因此您可以将其命名为 sum3digits 或什至 sum_digits 并重用它。 :-)

关于python - 一个包含 6 个元素的列表中的 3 个数字如何求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69314077/

相关文章:

python - redis - 每 20 分钟从套接字读取超时

python - PyQt5 中的 QTableView clicked.connect() 键盘滚动等效

django - 已保存查询集的 Python/Django 递归问题

python - 字典唯一组合Python列表

python - PyQt5 获取另一个小部件的位置?

python - PYQT:QTableView。日期之间的筛选

python-3.x - 如何增加 ipywidgets 中的 slider 长度

python - 在 python 3 中将字节转换为字符串

python - 基于Enum迭代或索引列表

python - 在 Fedora 24 上的 Python3 中使用 `cairo.Region` 时出现段错误