Python 出现异常

捕捉异常:try except

利用异常处理语句,令程序不炸。

try:
    user_weight = float(input("请输入您的体重(单位:kg):"))
    user_height = float(input("请输入您的身高(单位:m):"))
    user_BMI = user_weight / user_height ** 2 
except ValueError: #如果用户输入的不是浮点值,就会产生报错
    print("输入不为合理数字,请重新运行程序,并输入正确的数字。")
except ZeroDivisionError:#如果用户输入的不是浮点值,就会产生报错
    print("身高不能为零,请重新运行程序,并输入正确的数字。")
except:#捕捉所有的错误类型
    print("发生了未知错误,请重新运行程序。")
else:
    print("您的BMI值为:"+ str(user_BMI))
finally: #无论程序错误与否,都回到以下指令
    print("程序结束运行。")

如果第一个except语句就捕捉到了对应错误,后面的except就都不会执行了。

else:如果前面的语句全部没有语法错误,就会出现else。

finally:无论前面的运行如何,finally都会运行成功。

  • 产生值错误时会运行

  • 产生除零错误时会运行

  • 产生其他错误时会运行(捕捉所有的错误)

实战练习:

尝试两个input,分别输入体重和身高。计算出两个值的和。

user_input1 = input("请输入第一个数字:")
user_input2 = input("请输入第二个数字:")
int(user_input1) + int(user_input2) 
#如果这里不用int(),会报错。因为input输出的是字符串,两个字符串不能相加。

如果此时用户输入了一个非整数(not int),就会出现报错。

所以使用try-except 捕捉 ValueError错误。

user_input1 = input("请输入第一个数字:")
user_input2 = input("请输入第二个数字:")
try: #把try写在你认为有问题的那行上面
    result = int(user_input1) + int(user_input2)
except ValueError:
    print("请输入合理的数字。")
else:#用户没有输入任何错误
    print(result)

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值