else那点事
Python 中,else 除了与 if 匹配外,还可以与 for , while, try 等关键字匹配使用。
for...else...
Python中的通过for...else...会使得代码很简洁,注意else中的代码块仅仅是在for循环中没有执行break语句的时候执行:
cities = ['BeiJing', 'TianJin', 'JiNan', 'ShenZhen', 'WuHan']
tofind = 'Shanghai'
for city in cities:
if tofind == city:
print 'Found!'
break
else:
# 执行else中的语句意味着没有执行break
print 'Not found!'
>>> Not found! #运行结果
while...else...
只有当 while 环运行完毕时,也就是说 while 的循环条件为假而退出,没有关键字 break 来终止循环 while 循环,else 中的代码块才能够运行。这与 for 循环中else 的用法类似的。
find = 'Java'
array = ['I', 'love', 'Python', 'forever']
i = 0
while i < len(array):
if find == array[i]:
print('Found!')
break
i += 1
else:
print('Not found!')
>>> Not found! #运行结果
try…else
只有当 try 块中的代码没有捕获到任何一种异常时,才执行 else 块中的代码。其中的语法结构为:
try:
<Code1>
except <name>:
<Code2>
else:
<Code3>
当Code1
代码执行过程中捕获到 name
类型的异常时,就会执行Code2
代码块,如果没有任何异常,会执行 Code3
代码块。
注意是没有任何异常,如果存在异常而 except
模块没捕获到,那么else
代码块中的代码不会执行。同时也要注意,else
代码块中的异常是没有被捕获的。这可以应用在读取文件过程中,如果打开文件异常(可能有文件不存在等)就执行except
中的代码块,若无异常,则执行 else
中的代码块。Python代码如下:
filename = 'Python.txt'
try:
file = open(filename,"r")
except Exception as error:
print("File Open Error",error)
else:
for line in file:
print line,
file.close()
网友评论