编程语言Python的循环语句跟其它语言最大的不同在于,可以带一个else分支。
如下代码断示例:
for i in range(len(strii),1,-1):
if cc == 3:
result = ',' + result
cc = 0
result = strii[i-1] + result # index starts from 0
cc += 1
else: # after the loop is over
if strii[0] == '-':
result = strii[0] + result # negative sign
return result # return a string
注意那个else语句,这个else语句是跟for循环配对的。
在Python中,跟循环语句配对的else语句的执行规则:
1, 这样的else不能是else if....,不能带条件的;
2, else语句在循环执行完毕之后,立即执行;(如果是break语句跳出的循环,else就不执行)
3, 如果代码不能进入循环,直接执行else语句;
关于以上第一条,如果是else if,在模块加载的时候,系统报错:
>>> imp.reload(za)
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\imp.py
", line 314, in reload
return importlib.reload(module)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\import
lib\__init__.py", line 166, in reload
_bootstrap._exec(spec, module)
File "", line 626, in _exec
File "", line 661, in exec_module
File "", line 767, in get_code
File "", line 727, in source_to_code
File "", line 222, in _call_with_frames_removed
File "d:\onlinepro\za.py", line 92
else if strii[0] == '-': # after the loop is over
^
SyntaxError: invalid syntax
对于while循环,一样的。
>>> while False:
... print('a')
... else:
... print('b')
...
b
虽然没有else,整个代码的执行流程跟有else是一样的,Python这样做带来的好处是增加人类对代码的可读性,让与循环有关系的代码形成一个整理,逻辑和结构性都更强。
Python中对于异常处理的代码,依然有else分支可以使用,提高可读性:
try:
abcd += 10
except:
print('yichang')
else:
print('ok')
如果没有发生异常,打印OK;
如果发生异常,else分支不再执行。