课时34:丰富的else语句以及简洁的with语句

目录:
  一、丰富的else语句

  二、简洁的with语句

  三、课时34课后习题及答案

***********************

一、丰富的else语句

***********************

1、要么怎样,要么不怎样

典型的if-else搭配:

if条件:
  条件为真执行
else:
  条件为假执行

2、干完了能怎样,干不完就别想怎样

else语句可以跟for和while循环语句配合使用,但是else语句块只再循环完成后执行,也就是说,如果循环中间使用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)
复制代码

这个小程序主要是要求用户输入的数的最大约数,如果是素数的话就顺便提醒一下”这是一个素数“。注意要使用地板除法(count = num // 2)哦,否则结果会出错。使用暴力的方法一个一个尝试(num % count == 0),如果符合条件则打印最大的约数,并break,同时不会执行else语句块的内容了。如果一直没遇到合适的条件,则会执行else语句块内容。

for语句的用法和while一样,这里就不重复举例了。

3、没有问题,那就干吧

else语句还能跟刚刚学的异常处理进行搭配,实现跟与循环语句搭配差不多:只要try语句块里没有出现任何异常,那么就会执行else语句块里的内容了。举个例子:

复制代码
try:
      int("abc")
except ValueError as reason:
      print("出错啦" + str(reason))
else:
      print("没有任何异常")
复制代码

***********************

二、简洁的with语句

***********************

也许会觉得打开文件又要关闭文件,还要关注异常处理有些烦人,所以Python提供了一个with语句,利用这个语句抽象除文件操作中频繁使用的try/except/finally相关的细节。对文件操作使用with语句,将大大减少代码量,而且你再也不用担心出现文件打开了忘记关闭的问题了(with会自动帮你关闭文件)。举个例子:

复制代码
try:
      f = open("data.txt","x")
      for each_line in f:
            print(each_line)
except OSError as reason:
      print("出错啦" + str(reason))
finally:
      f.close()
复制代码

使用with语句,可以改成这样:

复制代码
try:
      with open("data.txt","x") as f:
            for each_line in f:
                  print(each_line)
except OSError as reason:
      print("出错啦" + str(reason))
复制代码

是不是很方便呢?有了with语句后,就再也不用担心忘记关闭文件了。

*******************************

三、课时34课后习题及答案

*******************************

发表回复