Python基础学习简记–else与with语句(Day12)
python中的else和with是两个非常实用的语句,以下是一点学习心得。
1、else语句
else语句一般可以有以下几种情况
-
if…else…
if a > b: return a - b else: #当if条件不成立时,执行else语句 return b - a
-
for…else…
for…else…的搭配比较巧妙,当for循环全部遍历完,才会执行else语句,如果有break导致循环中途退出,则连else一起跳过。#100以内的素数 for num in range(100, 1, -1): for i in range(2, int(num**0.5)+1) if num%i==0: break else: #当for循环全部执行完,执行else语句,中途break不执行else print(num, end=" ")
-
while…else
while…else…和for…else…类型,当while正常执行完后,执行else语句,如果中途break则不执行else。n=0 while n < 5: print(n) n+=1 else: print("ok")
-
try…except…else
try: 正常的操作 ...................... except(Exception1[, Exception2[,...ExceptionN]]]): 发生以上多个异常中的一个,执行这块代码 ...................... else: 如果没有异常执行这块代码
2、with语句
with语句是一种上下文管理协议,它可以确保在对资源进行访问后,无论是否发生异常,都可以执行相应的清理操作,正常的释放资源。
with语句是通过__enter__方法进行初始化,最后调用__exit__方法进行清理释放及处理异常。也就是说with处理的对象必须要有__enter__和__exit__方法。
最常用的方式就是通过with语句省略使用open()必须对应的close()语句,如下:
f = open("text.txt", "w")
f.write("ncepu")
f.close()
#使用with方法
with open("text.txt","w") as f:
f.write("ncepu")