Python–第十二天
学习目标:else与with语句
1.else语句:
1.while…else语句:
c=0
while c<5:
print("%d is less than 5" % c)
c=c+1
else:
print("%d is not less than 5" % c)
c=c+1
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
for…else语句:
当 for 循环把区间、元组或列表的所有元素遍历一次之后, for 循环会执行 else 代码块,在 else 代码块中,迭代变量的值依然等于最后一个元素的值。即:else语句会在循环正常执行完后开始执行。
例如如下代码:
a={1,2,3,4}
for n in a:
print(n)
else:
print('else块: ',n)
1
2
3
4
else块: 4
for n in range(1,5):
if n % 2 ==0:
print("%d 是偶数" % n)
else:
print("%d 不是偶数" % n)
1 不是偶数
2 是偶数
3 不是偶数
4 是偶数
with语句:
在实际的编码过程中,有时有一些任务,需要事先做一些设置,事后做一些清理,这时就需要python with出场了,with能够对这样的需求进行一个比较优雅的处理,最常用的例子就是对访问文件的处理:
例:
f = open(r'c:\test.txt', 'r')
data = f.read()
f.close()
这样写没有错,但是容易犯两个毛病:
-
如果在读写时出现异常而忘了异常处理。
-
忘了关闭文件句柄
with open(r'c:\test.txt', 'r') as f:
data = f.read()
所以with语句可以保证像文件之类的对象在使用完后一定会正确的执行它的清理方法。