1. 程式人生 > >Python中for循環搭配else的陷阱

Python中for循環搭配else的陷阱

結果 陷阱 循環 python ... 找到 clas for循環 並不會

假設有如下代碼:

for i in range(10):
    if i == 5:
        print ‘found it! i = %s‘ % i
else:
    print ‘not found it ...‘

你期望的結果是,當找到5時打印出

found it! i = 5

實際上打印出來的結果為:

found it! i = 5
not found it ...

當叠代的對象叠代完並為空時,位於else的子句將執行,而如果在for循環中含有break時則直接終止循環,並不會執行else子句。
所以正確的寫法應該為:

for i in range(10):
    if i == 5:
        print ‘found it! i = %s‘ % i
        break
else:
    print ‘not found it ...‘

Python中for循環搭配else的陷阱