for
仅当 for 循环运行完毕时( 即 for 循环没有被 break 语句中止)才运行 else 块。
>>> for i in range(10):
... print i
... else:
... print 'end'
...
0
1
2
3
4
5
6
7
8
9
end
>>>
>>>
>>> for i in range(10):
... if i == 5:
... break
... print i
... else:
... print 'end'
...
0
1
2
3
4
while
仅当 while 循环因为条件为假值而退出时( 即 while 循环没有被break 语句中止) 才运行 else 块。
>>> i = 0
>>> while(i != 5):
... print i
... i += 1
... else:
... print 'end'
...
0
1
2
3
4
end
>>> i = 0
>>> while(i != 5):
... print i
... if i == 2:
... break
... i += 1
... else:
... print 'end'
...
0
1
2
try
仅当 try 块中没有异常抛出时才运行 else 块 else 子句抛出的异常不会由前面的 except 子句处理.在所有情况下, 如果异常或者 return、 break 或 continue 语句导致控制权跳到了复合语句的主块之外, else 子句也会被跳过。
>>> try:
... import json
... except ImportError:
... print "error"
... else:
... print "end"
...
end
>>>
>>> try:
... import xxx
... except ImportError:
... print "error"
... else:
... print "end"
...
error