谁能向我解释为什么相同的函数无法获得相同的结果

时间:2018-10-17 14:46:03

标签: python python-3.x python-2.7

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只需更改函数名称,其他所有内容都不会更改。为什么结果不同?

3 个答案:

答案 0 :(得分:1)

return ssum3处循环。因此,循环仅工作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函数中,当函数击中返回值时,它将返回值并“退出”函数。这意味着您的第一个函数会在退出之前循环遍历整个范围,而第二个函数只会循环遍历一次