765838210 发表于 2020-3-25 15:25:34

try位置不同导致的错误

正确的
import random
n=random.randint(1,10)
while 1:
      try:
                number=int(input('猜一个整数:'))
                if number>n:
                        print('大了')
                elif number<n:
                        print('小了')
                elif number==n:
                        print('回答正确')
                        break
      except (TypeError,ValueError,KeyboardInterrupt,EOFError):
                print('请确保是整数')

错误的
import random
n=random.randint(1,10)
while 1:
      number=int(input('猜一个整数:'))
      try:
                if number>n:
                        print('大了')
                elif number<n:
                        print('小了')
                elif number==n:
                        print('回答正确')
                        break
      except (TypeError,ValueError,KeyboardInterrupt,EOFError):
                print('请确保是整数')

显示的错误为
Traceback (most recent call last):
File "G:\练习\1\1.py", line 4, in <module>
    number=int(input('猜一个整数:'))
ValueError: invalid literal for int() with base 10: 'sss'

ba21 发表于 2020-3-25 15:29:14

number=int(input('猜一个整数:')) 这就出错了,不用try捕捉肯定报错

一个账号 发表于 2020-3-25 15:34:26

异常是在 number=int(input('猜一个整数:')) 这里触发的,而你的 try 在下面,当然会触发异常

BngThea 发表于 2020-3-25 15:49:05

input返回的是str类型,如果是普通字符串不能直接用int转化
页: [1]
查看完整版本: try位置不同导致的错误