Python:else与with语句
学习资料:
https://mp.weixin.qq.com/s/_5Tfb8sIsSrPgqcRxyAHCw
引入:不同于其他语言,在Python中else语句除了可以与if搭配成条件语句,还可以与while搭配成循环语句,还可以进行异常处理。而with语句可以保证文件在是用完之后一定会被关闭。
Part 01 丰富的else语句
if...else
if 条件:
如果条件为真执行的语句
else:
如果条件为假执行的语句
while...else
&for..else
两者的else 中的语句会在循环正常执行完(若 for 或while不是通过 break 跳出而中断)的情况下执行。
while 条件:
执行语句
else:
不符合循环条件时执行的语句
例:
for num in range(10, 20):
for i in range(2, num):
if num % i == 0: # 确定第一个因子
j = num / i # 计算第二个因子
print('%d 等于 %d * %d' % (num, i, j))
break
else:
print(num, '是一个质数')
# 10 等于 2 * 5
# 11 是一个质数
# 12 等于 2 * 6
# 13 是一个质数
# 14 等于 2 * 7
# 15 等于 3 * 5
# 16 等于 2 * 8
# 17 是一个质数
# 18 等于 2 * 9
# 19 是一个质数
try …. except … else
try:
正常的操作
except:
发生异常执行的代码
else:
如果没有异常执行的代码
使用except最好带上异常类型,否则无论什么异常都执行下方语句。具体见Task 08:异常处理。
try:
正常的操作
except(Exception1, Exception2,..):
发生以上多个异常中的一个,执行的代码
else:
如果没有异常执行的代码
Part 02:简洁的with语句
例:
try:
f = open('myfile.txt', 'w')
for line in f:
print(line)
except OSError as error:
print('出错啦!%s' % str(error))
finally:
f.close()
改进:
try:
with open('myfile.txt', 'w') as f:
for line in f:
print(line)
except OSError as error:
print('出错啦!%s' % str(error))
with会自动调用f.close关闭文件。