1

我正在创建一个程序,该程序接受输入分数,将它们添加到列表中,并使用 for 循环将它们全部添加到一起显示总数。虽然遇到一些问题。请检查一下..

scoreList = []
count = 0
score = 0
sum = 0
while score != 999:
    score = float(input("enter a score or enter 999 to finish: "))
    if score > 0 and score < 100:
        scoreList.append(score)
    elif (score <0 or score > 100) and score != 999:
        print("This score is invalid, Enter 0-100")
else:
    for number in scoreList:
        sum = sum + scoreList
print (sum)
4

1 回答 1

9

问题很简单:

for number in scoreList:
    sum = sum + scoreList

如果要在 scoreList 中添加每个数字,则必须添加number,而不是scoreList

for number in scoreList:
    sum = sum + number

否则,您将尝试将整个列表sum一次又一次地添加到每个值中。这将引发TypeError: unsupported operand type(s) for +: 'int' and 'list'……但实际上,它无能为力,这可能是您想要的。


一个更简单的解决方案是使用内置sum函数。当然这意味着你需要一个不同的变量名,所以你不要隐藏函数。所以:

total_score = sum(scoreList)
于 2013-10-01T22:40:01.020 回答