def sum2(numbs):
s = 0
for x in numbs:
print(x)
s += x
return s
def sum3(numbs):
s = 0
for x in numbs:
print(x)
s += x
return s
list1 = [1, 2, 3, 4, 5]
函数sum2的结果如下:
1
2
3
4
5
15
而sum3如下所示:
1
1
sum3只需更改函数名称,其他所有内容都不会更改。为什么结果不同?
答案 0 :(得分:1)
return s
在sum3
处循环。因此,循环仅工作1次。
def sum3(numbs):
s = 0
for x in numbs:
print(x)
s += x
return s #This return must be outside of the loop
答案 1 :(得分:0)
“ return s”的缩进是不同的。现在,它发生在for循环内。您必须取消缩进,以便在for循环结束后执行此行。
答案 2 :(得分:0)
在sum3
中,您将return
放入循环中。在python函数中,当函数击中返回值时,它将返回值并“退出”函数。这意味着您的第一个函数会在退出之前循环遍历整个范围,而第二个函数只会循环遍历一次