从内循环返回和从外循环返回有什么区别?

2024-04-25 04:58:31 发布

您现在位置:Python中文网/ 问答频道 /正文

实际上,我是python的新手。在for循环部分我有疑问。 ->;if i return inside loop output is 1 for(对于字符串“abcd”)。 ->;如果返回的缩进与for在代码中使用的缩进相同,则输出将为4。 你能解释一下吗?你知道吗

我也用代码中的注释简单地添加了我的问题。你知道吗

def print_each_letter(word):
   counter = 0   
   for letter in word:
     counter += 1
     return counter      #its returning length 1  why ?
   return counter        # its returning length 4  why?

print_each_letter("abcd")

Tags: 代码gtforreturncounterlengthwordits
3条回答

因为循环中的return在第一次执行循环时执行,所以会发生这种情况:

counter = 0
for letter in word:
    #'a'
    counter += 1
    return counter #return counter (1) and terminate function.

但如果你让循环先运行:

counter = 0
for letter in word:
    #'a'
    counter += 1 #1
    #'b'
    counter += 1 #2
    #'c'
    counter += 1 #3
    #'d'
    counter += 1 #4
return counter #return counter (4) and terminate function.

根据Python的说法:

return leaves the current function call with the expression list (or None) as return value

返回值不同的原因是在第一次迭代结束时调用return时函数退出(因此值为1)。你知道吗

return退出函数,它返回4,因为它在循环外,循环执行了所有操作,加起来就是4(因为abcd的长度是4)并返回值。你知道吗

相关问题 更多 >