FIsh论坛《零基础入门学习Python》| 第033讲 课后测试题及答案

FIsh论坛《零基础入门学习Python》| 第033讲 异常处理:你不可能总是对的2 | 学习记录(小甲鱼零基础入门学习Python)

测试题:

0.使用try…except 搭配来捕获程序中的异常

try :
    检测范围
except Exception [ as reason ] :
    出现异常( Exception ) 后的处理代码
finally:
    写出现异常后必须处理的代码

1.一个try可以和多个except搭配,来分别捕获不同的异常。
2.在except后面用()把所有的异常括起来,这样可以统一处理多类异常。
3.expect后面如果不带任何异常类,Python会捕获所有(try语句块)的异常并统一处理,但这样有一些小问题。
这样做会使程序员不知道具体是出现哪个异常,进而影响改错,例如用户输入ctrl+c试图终止程序的会被理解为KeyboardInterrupt异常。
4.使用try…except…finally语句:

try :
    检测范围
except Exception [ as reason ] :
    出现异常( Exception ) 后的处理代码
finally:
    写出现异常后必须处理的代码

确保无论如何(就算出现了异常)文件也要被关闭,用户写入的数据必须得到保存。
5.恢复遮挡部分:
在这里插入图片描述

try :
    for i in range (3):
        for j in range(3):
            if i == 2 :
                raise KeyboardInterrupt
            print (i,j)
except KeyboardInterrupt  :
    print ("退出了!")

动动手:

0.完善程序:在这里插入图片描述

import random

count = random.randint(0,10)
print('----------------我爱鱼C工作室------------------')
temp = input("不妨猜一下我现在心里想的是哪个数字:")
try :
    guess = int(temp)
except ( ValueError ) :
    print ("输错啦,输入的不是整形数字!")
    guess = count 
while guess != count :
    temp = input ("哎呀,猜错了,请重新输入把:")
    try :
        guess = int(temp)
    except ( ValueError ) :
        print ("输错啦,输入的不是整形数字!") 
        break
    if guess == count :
        print("卧槽,你是我心里的蛔虫吗?!")
        print("哼,猜中了没奖励!")
    else :
        if  guess > count:
            print("哥,大了,大了~~~")
            
        else :
             print ("嘿,小了,小了~~~")
        print("你猜错啦,猜的太小啦!")
        
print("游戏结束^_^")

1.使用input()函数继续完善代码:
在这里插入图片描述

import random

count = random.randint(0,10)
print('----------------我爱鱼C工作室------------------')
temp = input("不妨猜一下我现在心里想的是哪个数字:")
try :
    guess = int(temp)
except ( ValueError , EOFError , KeyboardInterrupt ) :
    print ("输错啦,输入的不是整形数字!")
    guess = count 
while guess != count :
    temp = input ("哎呀,猜错了,请重新输入把:")
    try :
        guess = int(temp)
    except ( ValueError , EOFError , KeyboardInterrupt ) :
        print ("输错啦,输入的不是整形数字!") 
        break
    if guess == count :
        print("卧槽,你是我心里的蛔虫吗?!")
        print("哼,猜中了没奖励!")
    else :
        if  guess > count:
            print("哥,大了,大了~~~")
            
        else :
             print ("嘿,小了,小了~~~")
        print("你猜错啦,猜的太小啦!")
     
        
print("游戏结束^_^")

2.构建新函数int_input():
在这里插入图片描述

import random

def int_input(num) :
    temp = input ( num )
    try :
        count = int(temp)
    except ( ValueError , EOFError , KeyboardInterrupt ) :
        print ("出错,您输入的不是整数!")
        int_input("请输入一个整数:")

int_input("请输入一个整数:")

3.分析以下程序问题:
在这里插入图片描述
会出现如下错误: 因为你尝试去关闭一个没有打开的文件
在这里插入图片描述
修改代码:

try :
    f = open ('My_File.txt') #当前文件夹中并不存在存在“My_File.txt”这个文件T_T
except OSError as reason :
     print ("出错啦:" + str (reason))
finally :
    if 'f' in locals() : #如果文件对象变量保存于当前局部变量符号的话,说明打开成功
        f.close
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值