0
点赞
收藏
分享

微信扫一扫

(P34)异常处理:else语句,with


文章目录

  • ​​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))

  • 测试:
  • (P34)异常处理:else语句,with_while循环

  • 参考:小甲鱼零基础入门学习python笔记,​​第三十四课:异常处理:丰富的else语句和简洁的with语句​​


举报

相关推荐

0 条评论