从内部循环和外部循环返回收益之间有什么区别?

时间:2019-07-10 05:55:00

标签: python

实际上,我是python的新手。我对于for循环部分的回报感到怀疑。 ->如果我返回内部循环输出为1(对于字符串“ abcd”)。 ->如果返回的缩进与代码中使用的缩进相同,则输出为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")

3 个答案:

答案 0 :(得分:1)

return退出该函数,并返回4,因为它不在循环中,并且循环完成了所有操作,并累加到4(由于{{ 1}}是4)并返回值。

答案 1 :(得分:0)

因为循环内的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.

答案 2 :(得分:0)

根据python3 docs

  

return将当前函数调用留给表达式列表(或   无)作为返回值

返回值不同的原因是,在第一次迭代的末尾调用return时,函数将退出(因此值为1)。