python基础刻意练习-- Task 9 else 与 with 语句

Day 12

1、else 语句

else语句一般是用在条件与循环语句中,也可以用在try语句中。下面给出几个e使用else语句的例子:

  • if...else...语句
a = 10
b = 20
if a > b:
    print('%d 大于 %d' % (a,b))
else:
    print('%d 小于 %d' % (a,b))
# 10 小于 20
  • while...else...语句
z = 5
while z < 10:
    print('%d 小于 10' %z)
    z = z + 1
else:
    print('%d 不小于 10' %z)
# 5 小于 10
# 6 小于 10
# 7 小于 10
# 8 小于 10
# 9 小于 10
# 10 不小于 10
  • for...else...语句
print('下面打印1-30内的质数:')
for i in range(1,30):
    for j in range(2,i):
        if i % j == 0:
            break
    else:
        print(i)
'''
下面打印1-30内的质数:
1
2
3
5
7
11
13
17
19
23
29
'''
  • try...except...else语句

如果在 try 子句执行时没有发生异常,Python将执行 else 语句后的语句(如果有 else 的话),然后控制流通过整个 try 语句。
使用 except 而不带任何异常类型,这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息,因为它捕获所有的异常。

try:
    正常的操作
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   发生以上多个异常中的一个,执行这块代码
   ......................
else:
    如果没有异常执行这块代码

举一个例子:

try:
    f = open('C:\\Users\dell\Desktop\study.txt')
    a = f.read()
except OSError as error:
    print('出错了!\n原因是:' + str(error))
else:
    print(a)
    f.close()
# 好好学习
# 天天向上
2、with 语句
  • 一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。
  • 关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。

下面举一个例子:

try:
    f = open('study.txt','w')
    a = f.read()
    print(a)
except OSError as error:
    print('出错了!\n原因是:' + str(error))
finally:
    f.close()
  • 这段代码执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭。
try:
    with open('study.txt','w') as f:
        a = f.read()
        print(a)
except OSError as error:
    print('出错了!\n原因是:' + str(error))

备注:

学习参考资料:
https://mp.weixin.qq.com/s?__biz=MzIyNDA1NjA1NQ==&mid=2651011492&idx=1&sn=e0654f1aebf1be11efa48ba7f51f8fa9&chksm=f3e35e3cc494d72a3f5324c01b45c89bc36b7ac3e302664b842fd7fd73562fa480a60cb6332d&mpshare=1&scene=1&srcid=&sharer_sharetime=1572473330145&sharer_shareid=8c49d4226c319addceef298b781f6bb7&key=5792dae60a8bc6de2dda7e1ca142b5da0e2abe39e98bf2ecf772b637090efdccd7fcca26befd038d4e356fed8c47a80f9f8a15a200408e53d369712ab69ec80c8b3169e49ac3a1b4065008b7c83c976b&ascene=1&uin=MTgxNzI3MTY0MQ%3D%3D&devicetype=Windows+10&version=62060841&lang=zh_CN&pass_ticket=WgrUmwZbjLNWp%2FHdjgYsx9VoLQ6iqr3URJLBmzLMdqWlp4DS0qmtaLOuOHcDIxxM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值