文章目录
- 1.else语句
- 2.with
1.else语句
- 在Python中,else语句不仅能跟if语句搭配,构成“要么怎样,要么不怎么样”的语境;Ta还能跟循环语句(for语句或者while语句),构成“干完了能怎样,不干完就别想怎样”的语境;其实else语句还能够跟我们刚刚讲的异常处理进行搭配,构成“没有问题,那就干吧”的语境。
- eg:
def showMaxFactor(num):
count = num // 2#//为整除,判断是素数,只需依次判断当前数num除以1到(num // 2)都不能整除即可
while count > 1:
if num % count == 0:#判断是否整除
print('%d最大的约数是%d' % (num, count))
break#跳出循环后else并不执行
count -= 1
else:#当while循环不成立时,或者理解为while循环完全被执行完了,没有给中途跳出(即break)
print('%d是素数!' % num)
num = int(input('请输入一个数:'))
showMaxFactor(num)
- 测试:注:else与for语句搭配与while语句相同
- eg:只要try语句块里没有出现任何异常,那么就会执行else语句块里的内容啦
try:
print(int('123'))
except ValueError as reason:
print('出错了:' + str(reason))
else:
print('没有任何异常!')
- 测试:
2.with
- bug的eg:若data.txt不存在,则这里试图去关闭一个不存在的文件的问题。
try:
f = open('test.txt','w')
for each_line in f:
print(each_line)
except (OSError,TypeError) as reason:
print('出错了\n原因是:' + str(reason))
finally:
f.close()
- 简洁的with语句(with会自动帮你关闭文件)
try:
with open('test.txt','w') as f:
for each_line in f:
print(each_line)
except (OSError,TypeError) as reason:
print('出错了\n原因是:' + str(reason))
- 测试:
- 参考:小甲鱼零基础入门学习python笔记,第三十四课:异常处理:丰富的else语句和简洁的with语句