当我print(sum(n))
时,我得到7
而不是列表元素的总和32
。我做错了什么?
def sum(numbers):
total = 0
for number in numbers:
total += number
return total
n = [7, 12, 5, 8]
print (sum(n))
答案 0 :(得分:3)
如果return
语句在for
循环中,那么它将在迭代一次后返回总数,因此total
的值将是循环中的第一个元素:在这种情况下,7
。你应该在循环之后放置return语句,以便计算整个总数:
def sum(numbers):
total = 0
for number in numbers:
total += number
return total
n = [7, 12, 5, 8]
print(sum(n))
但是,sum()
已经是Python中的内置函数,因此您只需将代码简化为以下内容:
n = [7, 12, 5, 8]
print(sum(n))
其中任何一个都会打印32
。
答案 1 :(得分:2)
让我们一步一步解释:
def sum(numbers):
total = 0
for number in numbers:
total += number
#If you return here, you wont sum the rest, just the first
return total # Return must go outside the for loop, because it breaks the execution
n = [7, 12, 5, 8]
print (sum(n))
答案 2 :(得分:2)
您的金额会立即返还,您不会等待列表循环播放。