今天我学会了try和except异常捕获的初步使用方法
假如程序要求输入一个数字,试图判定数字的大小,而你却输入了英文,导致程序直接关闭,怎么办?
这里我先写一个小程序:
# coding:utf-8
point=input("请输入考试成绩")
if int(point) > 60 and int(point) <= 100: #当分数大于60小于等于100时
print("你及格了") #输出"你及格了"
elif int(point) < 60 and int(point) >= 0: #当分数小于60大于等于0时
print("你没及格")
这里可以看到我写了一个小检测程式,判定你是否及格了,若我输入英文,汉字,甚至小数呢?
ValueError: invalid literal for int() with base 10: 'point'
那么,报错来了,Python并不能把你输入的内容转换成int整数类型。
这时候,我们就需要一个异常捕获让程序做点什么了。
# coding:utf-8
point=input("请输入考试成绩")
try: #尝试做以下命令
point=int(point) #试图转换point为int整数存储
except(ValueError)as point: #当try包含的与point有关的程式发生了"ValueError"错误时
print("你的输入不正确,请重新输入") #输出提示
if int(point) > 60 and int(point) <= 100: #当分数大于60小于等于100时
print("你及格了") #输出"你及格了"
elif int(point) < 60 and int(point) >= 0: #当分数小于60大于等于0时
print("你没及格")
至此,你输入了非整数内容后,都会提示输入不正确。
except有一个缺点,当捕获异常报错并执行except包含的命令行后,程序将直接关闭,无法使用while循环改变。
在括号内可输入多种错误类型,列如:
ValueError 参数无效错误
NameError 未声明定义变量错误
TypeError 类型无效错误
SyntaxError 语法错误
IndentationError 缩进格式错误
跟一般语法一样,用英式逗号隔开
except(ValueError,NameError)as x:
以上是我学会的except基本初步使用方法。