例如,我们有一个 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/