谁能向我解释为什么相同的函数不能得到相同的结果

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 只是更改了函数名称,其他所有内容都没有更改。为什么结果不一样?


一只萌萌小番薯
浏览 239回答 3
3回答

RISEBY

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

qq_遁去的一_1

在 中sum3,您拥有return循环内部。在 python 函数中,当函数遇到返回时,它返回值并“退出”函数。这意味着您的第一个函数在退出之前循环遍历整个范围,而第二个函数只循环一次

慕桂英3389331

“return s”的缩进是不同的。它现在发生在 for 循环内。您必须取消缩进,以便在 for 循环结束后执行此行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python