小甲鱼零基础学习python_21 【python中else语句的丰富使用和简洁的with语句】


1. else语句的丰富搭配

if - else / while(for)- else / try - else

1.1 if - else - elif:

用法:如果 if 条件满足,则执行 if 语句块,否则执行 else 语句块。

if(True):
    print('i love you')
else:
    print('i dont love you')

这里写图片描述

1.2 while(for) - else:

用法:当while/for循环顺利完成 即没有break跳出 才会执行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)

这里写图片描述
这里写图片描述

1.3 try - else:

用法:只要try语句没有任何异常,顺利完成,才会执行else语句块。

try:
    int('123')
    #int('bc')
except ValueError as reason:
    print('出错啦!'+str(reason))
else:
    print('没有任何异常!')

这里写图片描述

try - else 与 try - finally 的区别是:

1. try - else只要try语句没有任何异常,顺利完成,才会执行else语句块。
2. try - finally不管try语句块如何,都会执行finally语句。

2. 简洁的with语句:

如果采用上阶段的try - finally 关闭文件,有可能会出现这么一种情况:
文件根本不存在,却要关闭,则会出错:

try:
    f=open('D:\\data.txt','r')
    for eachline in f:
        print(eachline)
except OSError as reason:
    print('出错啦!' + str(reason))
finally:
    f.close()

这里写图片描述

此时可以采取两种方案:
1.在finally 里继续写一个try:

try:
    f=open('D:\\dataaaa.txt','r')
    for eachline in f:
        print(eachline)
except OSError as reason:
    print('出错啦!' + str(reason))
finally:
    try:
        f.close()
    except NameError as reason:
        print('出错啦!' + str(reason))

这里写图片描述

2.我们的with语句此时就派上了作用啦:
with不需要finally里的关闭,因为with会判断什么时候要自动关闭。
try:
    with open('D:\\data.txt','r') as f:
        for eachline in f:
            print(eachline)
except OSError as reason:
    print('出错啦!' + str(reason))

这里写图片描述


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值