What is the use of “else” after “for” loop in Python? [duplicate]

被刻印的时光 ゝ 提交于 2020-06-09 05:13:48

问题


It seems both of the below codes are printing the same, then what is the need of "else" block after "for" loop in python.

Code 1:

for i in range(10):
    print i
else:
    print "after for loop"

Code 2:

for i in range(10):
    print i

print "after for loop"

Thanks in advance.


回答1:


From the documentation:

Loop statements may have an else clause; it is executed when the loop terminates through exhaustion of the list (with for) or when the condition becomes false (with while), but not when the loop is terminated by a break statement.

Follow the link for an example how this can be used.




回答2:


else executes after for providing for wasn't terminated with break:

 for i in range(10):
    print i

    if (i == 8):
        break # termination, no else    
 else:
    print "after for loop"



回答3:


This was originally enacted in order to get rid of all the "GOTO" statements in procedures without using flags: It means "NO BREAK"

for i, value in enumerate(sequence):
    if value == target:
    break
else:           #<-- if we finish the loop and did not encounter break, return -1
    return -1
return 1        #<-- if we did encounter break, return 1

You can watch Raymond Hettinger's Pycon talk that mentions the for/else construct here: Transforming Code into Beautiful, Idiomatic Python, http://pyvideo.org/video/1780/transforming-code-into-beautiful-idiomatic-pytho



来源:https://stackoverflow.com/questions/23625189/what-is-the-use-of-else-after-for-loop-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!