brusezhong 发表于 2020-6-29 22:11:15

我是初学者,谁能帮我看看为什么报错,搞不懂,也没有老师解答

怎么会报错呢?输入8就直接“再见”,输入7就“再来一次”但是不显示小了,再输入6就报错了?这是为什么?


temp = input('让我们来猜数字游戏:')
guess = int(temp)
while guess != 8:
    temp = input('再猜一次吧:')
    input = int(temp)
    if guess == 8:
      print('你真棒,对了')
      print('可是不给你奖')   
    else:
      if guess > 8:
            print('大了,大了')
      else:
            print('小了')
print("再见")
   


下面是输出:


让我们来猜数字游戏:7
再猜一次吧:
===================== RESTART: C:/Users/win10/Desktop/12.py ====================
让我们来猜数字游戏:6
再猜一次吧:7
小了
Traceback (most recent call last):
File "C:/Users/win10/Desktop/12.py", line 5, in <module>
    temp = input('再猜一次吧:')
TypeError: 'int' object is not callable
>>>
===================== RESTART: C:/Users/win10/Desktop/12.py ====================
让我们来猜数字游戏:8
再见
>>>
===================== RESTART: C:/Users/win10/Desktop/12.py ====================
让我们来猜数字游戏:7
再猜一次吧:6
小了
Traceback (most recent call last):
File "C:/Users/win10/Desktop/12.py", line 5, in <module>
    temp = input('再猜一次吧:')
TypeError: 'int' object is not callable
>>>

Twilight6 发表于 2020-6-29 22:16:37

本帖最后由 Twilight6 于 2020-6-29 22:18 编辑




因为你 进入循环的条件设置的是 guess != 8 才能进入循环

所以你直接输入 8不符合 guess != 8 这个条件 不进入循环 就显示 再见了

后面的报错原因是因为 你这里代码把 input 函数赋值了 导致 input 函数失去原有的功能 :

input = int(temp)

改成 guess 即可:

temp = input('让我们来猜数字游戏:')
guess = int(temp)
while guess != 8:
    temp = input('再猜一次吧:')
    guess = int(temp)
    if guess == 8:
      print('你真棒,对了')
      print('可是不给你奖')
    else:
      if guess > 8:
            print('大了,大了')
      else:
            print('小了')
print("再见")

brusezhong 发表于 2020-6-30 08:03:45

Twilight6 发表于 2020-6-29 22:16
因为你 进入循环的条件设置的是 guess != 8 才能进入循环

所以你直接输入 8不符合 guess != 8 ...

谢谢,,一直没有发现guess写成了INPUT,,太无语了{:5_109:}

Twilight6 发表于 2020-6-30 08:06:47

brusezhong 发表于 2020-6-30 08:03
谢谢,,一直没有发现guess写成了INPUT,,太无语了

{:10_297:}

陈尚涵 发表于 2020-7-5 19:43:57

这样的错以后要少犯哦{:10_281:}
页: [1]
查看完整版本: 我是初学者,谁能帮我看看为什么报错,搞不懂,也没有老师解答