python中的 else 关键字
2017-06-25
else
Python 中, 我们经常遇到else 关键字,
如果是在if 判断中, else 比较容易理解,
但是在异常捕获里, else 也会被用到, 这就难理解了
异常捕获
python 中的异常捕获, 如下
try:
x = 1/0
except ZeroDivisionError as e:
print('value exception')
打印value exception
触发了ZeroDivisionError 异常
else 关键字如何应用进去呢, 如下
try:
x = 1/0
except ZeroDivisionError as e:
print('value exception')
else:
print('else stuff')
输出
value exception
没有触发 else, 如果没有异常呢
try:
x = 1/1
print('try ...')
except ZeroDivisionError as e:
print('value exception')
else:
print('else stuff')
输出
try ...
else stuff
触发了else
异常捕获中的else是在没有异常的时候触发的
函数中的try-except-else
def test():
try:
x = 1/1
print('try...')
return 'try...'
except ZeroDivisionError as e:
print('value exception')
else:
print('else stuff')
return 'else stuff'
print(test())
我们可以得到
try...
try...
第一个try...是在x = 1/1下的print 输出的, 第二个try...是test() 函数返回后最后一行输出的,
注意, 这里虽然没有异常, 但并没有触发else
所以, 如果在try中出现了出现了return的语句, else 就不会被触发