1、 if … else …
if ... elif ... else ...
形式与 if ... else ...
在用法是没有区别的。
a = 10
b = 20
if a > b:
print('%s > %s' % (a, b))
else:
print('%s <= %s' % (a, b))
运行结果:
10 <= 20
2、 while … else …
1)执行 else 的情况
n = 8
while n<10:
if n % 5 == 0:
print('000')
break
print('111')
n += 1
else:
print('-- else --')
说明:
if 块中的内容没有执行,while 循环就结束了。
运行结果:
111
111
-- else --
2)不执行 else 的情况
n<10
改成 n<15
n = 8
while n<15:
if n % 5 == 0:
print('000')
break
print('111')
n += 1
else:
print('-- else --')
说明:
因为执行 if 块中的内容,并执行 break ,所以 else 不执行。
运行结果:
111
111
111
000
如果将上述代码中的break去掉,则 else 语句 将会被执行.
3、 try … except … else …
该形式与 try ... except ... else ... finally ...
只有唯一的区别:finally 语句体总是会被执行.
1)执行 else 的情况
try:
print('normal')
except:
print('error')
else:
print('else')
运行结果:
normal
else
2)不执行 else 的情况
try:
print(1/0)
except:
print('error')
else:
print('else')
运行结果:
error
4、for … else …
1)执行 else 的情况
不含 break 的代码,
for i in range(10):
if i % 5 == 0:
print('normal')
# break
else:
print('else')
运行结果:
normal
normal
else
2)不执行 else 的情况
含有 break的代码
for i in range(10):
if i % 5 == 0:
print('normal')
break
else:
print('else')
运行结果:
normal
5、总结:
对于while ... else ...
、try ... except ... else ...
、for ... else ...
来说,当语句体中有 break 、return 或者异常发生则不会执行 else 语句体;其余情况下则会执行 else 语句体.