3

所以我正在用python 3.2编写一个井字游戏,我花了很多时间试图解决这个问题并检查我的代码、脚本或任何你想要调用它的东西,很多次但仍然找不到它. 我用谷歌搜索了它,所有的答案都令人困惑,或者这个人正在编写与我的井字游戏不同的脚本。请注意,我只是python的初学者。当我尝试运行它时出现错误:

Traceback (most recent call last):
  File "/Users/user/Desktop/tic tac toe game.py", line 41, in <module>
    input = input("Select a spot:")
TypeError: 'int' object is not callable"

这意味着什么?这是它说它有问题的代码:

while True:

    input = input("Select a spot:")
    input = int(input)

如果你能帮助我,那就太重要了。这太烦人了,我一直在努力解决它。

4

3 回答 3

12

input()是一个 Python 函数,您将它用作函数和标识符。

第一次使用input作为变量名将起作用,但第二次通过循环将不再有input()函数,因为该名称现在与整数变量相关联。

input()因此,您只有一个名为 的变量,而不是函数input,因此会出现错误(@poke 和 @DSM 在评论中也提到过)

使用answer作为你的变量名将是一个更好的主意:

while True:
    answer = input("Select a spot:")
    answer = int(answer)
于 2012-06-25T16:51:50.803 回答
5

您正在使用input结果的名称,它替换了input您尝试调用的函数。使用不同的名称。

编辑:当您循环遍历时,到第二次迭代滚动时,您已经将变量重新绑定input到您的用户输入,因此它不再是内置函数,而是您刚刚将用户输入转换为的整数。该名称input不能同时指代两个不同的事物。

于 2012-06-25T16:52:18.537 回答
3

第一次打电话

input("Select a spot:")

它工作正常 - 返回一个字符串,您将其转换为 int 并将其存储到input.

第二次调用 时input,它会获取您刚刚存储的整数并尝试将其作为函数运行。这失败了,您看到了错误消息。

于 2012-06-25T17:00:14.087 回答