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

(标答出处: 鱼C论坛)
《零基础入门学习Python》

测试题:
在这里插入图片描述
使用try…except 搭配来捕获程序中的异常

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

在这里插入图片描述
可以,可以和多个except搭配,来分别捕获不同的异常

例如:
在这里插入图片描述
在这里插入图片描述
在except后面用()把所有的异常括起来

例如:
在这里插入图片描述
在这里插入图片描述
因为这样做会使程序员不知道具体是出现哪个异常,进而影响改错,例如用户输入ctrl+c试图终止程序的会被理解为KeyboardInterrupt异常。

在这里插入图片描述
使用try…except…finally

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

在这里插入图片描述

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

动动手:
在这里插入图片描述

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("游戏结束^_^")

在这里插入图片描述

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("游戏结束^_^")

在这里插入图片描述

import random

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

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

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
会出现如下错误: 因为你尝试去关闭一个没有打开的文件
在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/qq_38970783/article/details/86540608