Python基础之异常处理
1.常见异常
异常名称 | 描述 |
---|---|
BaseException | 所有异常的基类 |
Exception | 常规错误的基类 |
ArithmeticError | 所有数值计算错误的基类 |
FloatingPointError | 浮点计算错误 |
ZeroDivisionError | 除(或取模)零 (所有数据类型) |
FloatingPointError | 浮点计算错误 |
IOError | 输入/输出操作失败 |
LookupError | 无效数据查询的基类 |
KeyError | 映射中没有这个键 |
… | … |
更多可在使用时查询
2.try / except / finally / raise 语句
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
try:
检测范围
except Exception[as reason]:
出现异常后的处理代码
finally:
无论如何都会被执行的代码
try:
raise NameError('HiThere')
except NameError:
print('An exception flew by!')
# An exception flew by!
练习题
1、猜数字游戏
题目描述:
电脑产生一个零到100之间的随机数字,然后让用户来猜,如果用户猜的数字比这个数字大,提示太大,否则提示太小,当用户正好猜中电脑会提示,“恭喜你猜到了这个数是…”。在用户每次猜测之前程序会输出用户是第几次猜测,如果用户输入的根本不是一个数字,程序会告诉用户"输入无效"。
(尝试使用try catch异常处理结构对输入情况进行处理)
获取随机数采用random模块。
import random
num = random.randint(0, 100)
print('猜测一个0到100之间的整数:')
#print(num)
guess = 101 #给定guess一个初值,使得第一次循环成立
try:
i = 1
while guess !=num:
guess = int(input('第%d次猜,请输入一个整型数字:' %i))
if guess > num:
print('太大')
elif guess < num:
print('太小')
else:
print('恭喜你猜到了这个数是%d' %num)
i += 1
except ValueError:
print('输入无效')