在Python中的while
或者for
循環以後還能夠有else
子句,做用是for
循環中if
條件一直不知足,則最後就執行else
語句。oop
for i in range(5): if i == 1: print 'in for' else: print 'in else' print 'after for-loop' # in for # in else # after for-loop
但咱們發現if
條件在循環的過程當中成立了,最終仍是執行了else
語句裏的內容,這是爲何呢?code
好的,咱們這時看下面這段程序:循環
for i in range(5): if i == 1: print 'in for' break else: print 'in else' print 'after for-loop' # in for # after for-loop
咱們在if
裏添加了一個break
,這是由於else
是在for
後執行的,但只有for
循環正常退出時纔會執行else
語句(不是由break
結束循環)。而當循環是由break
語句中斷時,else
就不被執行。程序
for
/else
等效於下面這段代碼,能夠相似C語言那樣添加一個flag:語言
found = False for i in range(5): if i == 1: found = True print 'in for' if not found: print 'not found' print 'after for-loop' # in for # after for-loop
與for
語句類似,while
語句中的else
子句用法是同樣的,else
塊在循環正常結束和循環條件不成立時執行。loop