1. else的三种搭配
- if else
- whlie/for else
- try except else
1.1 if else
if 2 > 1:
print('2>1')
else :
print('hh')
1.2 whlie/for else
- 如果循环全部执行结束,中间没有跳出(break)语句,执行else语句
- 循环遍历元组,中间没有跳出,输出未中奖,有跳出,不输出未中奖
def caipiao (num):
for echo in cai:
if echo == num:
print('中奖了')
break
else :
print('很遗憾,您没有中奖!!!')
cai = (12,34,56,23,78,23,67)
num = int(input('请输入一个号码'))
caipiao(num)
运行输出:
1.3 try except else
- try范围内
没有异常
,else的代码被执行
① 有异常的
② 没有异常的:
2. with语句
- 它是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和资源分配释放相关代码统统去掉,
简化try….except….finlally的处理流程。
- 使用with处理的对象必须有__enter__()和__exit__()这两个方法。
可重写这两个方法,达到想要的目的
- with通过__enter__方法初始化,然后在__exit__中做善后以及处理异常。
- 其中__enter__()方法在语句体(with语句包裹起来的代码块)执行之前进入运行,并且将返回值赋值给as后面的变量__exit__()方法在语句体执行完毕退出后运行。
- with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,
比如文件使用后自动关闭、线程中锁的自动获取和释放等
。
2.1 with的基本用法
-
expression:是一个需要执行的表达式;
-
target:是一个变量或者元组,存储的是expression表达式执行返回的结果,可选参数
with expression [as target]:
2.2 with 实例
- 文件自动关闭
try except finall
with