Wgq 发表于 2017-10-8 00:03:35

捕捉异常

场景:在猜数游戏中,如果用户输入非整型数据,程序会异常崩溃,现在要做的就是检查异常,完善用户体验
需求:把检查异常放进循环体,用户输入一次,就检查一次
代码:
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, 运行的结果是“输入错误”——>“大了”——>"输入数字"
难道不是捕捉到异常后返回到循环体的开始部分吗?

ba21 发表于 2017-10-8 11:16:58

对输入的字符判断是不是数字即可

参考代码:
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 ("小了")

BngThea 发表于 2017-10-15 15:30:59

捕获异常后会继续执行excpet后面的语句,
而try中捕获位置后面的语句将被跳过而已
页: [1]
查看完整版本: 捕捉异常