捕捉异常
场景:在猜数游戏中,如果用户输入非整型数据,程序会异常崩溃,现在要做的就是检查异常,完善用户体验需求:把检查异常放进循环体,用户输入一次,就检查一次
代码:
import random
secret=random.randint(1,10)
count=1
while count:
try:
temp=input("输入数字")
guess=int(temp)
except ValueError:
print ("输入错误")
if guess ==secret:
print ("猜中了")
count=0
else:
if guess >secret:
print ("大了")
else:
print ("小了")
问题:为什么输入字符a, 运行的结果是“输入错误”——>“大了”——>"输入数字"
难道不是捕捉到异常后返回到循环体的开始部分吗? 对输入的字符判断是不是数字即可
参考代码:
import random
secret=random.randint(1,10)
count=1
while count:
temp=''
while not temp.isdigit():
temp=input("输入数字")
guess=int(temp)
if guess ==secret:
print ("猜中了")
count=0
else:
if guess >secret:
print ("大了")
else:
print ("小了")
捕获异常后会继续执行excpet后面的语句,
而try中捕获位置后面的语句将被跳过而已
页:
[1]