一、丰富的else语句
1.它可以与while语句构成:“要么怎样,要么不怎样”的逻辑结构
2.也可以与for语句构成:“干完了能怎样,干不完就别想怎样”的逻辑结构
3.还可以与异常处理语句构成:“没有问题,那就干吧”的逻辑结构
------------------------------------------------------------------------------------------------------
1.if/while - else语句:
if 条件:
执行语句1
else:
执行语句2
举个例子加深理解:(while和else的搭配使用)
def showMaxFactor(num): #计算除自身外的最大约数
count = num // 2
while count > 1:
if num % count == 0:
print('%d最大的约数是%d'%(num, count))
break
count -= 1
else:
print('%d是素数'%num)
num = int( input( '请输入一个数:' ) )
showMaxFactor(num)
------------------------------------------------------------------------------------------------------
2.for-else语句:
与while-else语句是类似的,这里不再重复举例了
------------------------------------------------------------------------------------------------------
3.try-else语句:只要try里面的语句没有异常,那么就执行esle里面的语句
try:
代码块1
except:
运行异常代码块
else:
代码块2
举例说明:
try:
int('123')
except ValueError as reason:
print('出错啦:', reason )
else:
print('没有任何异常!')
#这段代码里,由于int('123')没有任何问题,所以else中的语句会被执行
二、简洁的with语句
前面打开文件关闭文件很烦,为了防止出错甚至还加入了try-except语句。我们引入with语句,
它会自动帮我们考虑关闭文件的问题,使代码更加简洁。下面举例说明:
在之前,我们关闭文件需要使用close(),如下:
try:
f = open('data.txt','w')
for each_line in f:
print(each_line)
except OSError as reason:
print('出错了:',reason)
finally:
f.close()
但是在使用with后,就不用考虑关闭文件的问题了,代码也简洁很多:
try:
with open('data.txt','w') as f:
for each_line in f:
print(each_line)
except OSError as reason:
print('出错了:',reason)