Vitacoco 发表于 2020-5-16 01:43:10

为什么当输入不是数字的时候会报错

import random
secret = random.randint(1,5)
num = input('猜一个数字 ')
result = int(num)
i = 5

if num.isdigit():   
    while result != secret and i :   
      if result > secret:
            print('大了')
      else:
            print('小了')
      num = input('再猜一次')
      result = int(num)
      i = i - 1
    print('对了')
    print('但对了也没有奖励')
    print('Game Over')
else:
    print("抱歉,您的输入有误,请输入一个整数:", end='')

Twilight6 发表于 2020-5-16 02:40:29

首先你要知道 input 方法用户输入后的值是以字符串格式赋值给变量的,int方法是把其他类型的数值转化为整型,也就是整数。

当你输入一个非数值类型的数时候,导致int无法转化为整数就会报错的~

举个例子: 假设你input 那输入的是 中文 , 那你如何把中文字转化为整数呢?是吧,所以就会报错~

只需要把result改下位置即可:
import random
secret = random.randint(1,5)
num = input('猜一个数字 ')
i = 5

if num.isdigit():
    result = int(num)# 改到这 ,因为isdigit()会先判断是不是数字类字符串,是的话才会执行转化为整数
    while result != secret and i :   
      if result > secret:
            print('大了')
      else:
            print('小了')
      num = input('再猜一次')
      result = int(num)
      i = i - 1
    print('对了')
    print('但对了也没有奖励')
    print('Game Over')
else:
    print("抱歉,您的输入有误,请输入一个整数:", end='')


如果帮助到你了,可以给设置个最佳哈~~{:10_287:}

Hoiste 发表于 2020-5-16 11:07:50

输入的不是数字的时候通过int方法转化为整型的话会有参数错误,需要修改代码的结构
页: [1]
查看完整版本: 为什么当输入不是数字的时候会报错