【问题标题】:TypeError: 'int' object is not callable' in Python 3.2? [duplicate]TypeError:Python 3.2 中的“int”对象不可调用? [复制]
【发布时间】:2012-06-26 23:06:12
【问题描述】:

所以我正在用 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)

如果你能帮助我,那将意义重大。太烦人了,我一直在努力解决它。

【问题讨论】:

    标签: python input pygame typeerror tic-tac-toe


    【解决方案1】:

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

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

    因此,您只有一个名为 input 的变量,而不是函数 input(),因此会出现错误(也如 cmets 中的 @poke 和 @DSM 所述)

    使用answer 作为变量名会更好:

    while True:
        answer = input("Select a spot:")
        answer = int(answer)
    

    【讨论】:

    • 你说得对,这不是一个好主意,但我怀疑这就是问题所在。
    • @martineau 这是因为赋值是循环的。第一次迭代会顺利进行,但在第二次迭代中,input 不再可调用。
    • @Ali Lewis:用input()就可以了,只是不要把结果赋给同名变量。
    • @AliLewis: answer = int(answer) 可以。
    • 这里点这个:i47.tinypic.com/fvy16s.jpg~就是弹出错误后的样子。
    【解决方案2】:

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

    编辑:当您循环遍历时,到第二次迭代滚动时,您已将变量 input 反弹到您的用户输入,因此它不再是内置函数,而是您刚刚将用户输入转换为的整数. input 这个名字不能同时指代两个不同的东西。

    【讨论】:

      【解决方案3】:

      第一次打电话

      input("Select a spot:")
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-29
        • 2014-03-17
        • 1970-01-01
        • 2022-11-28
        • 1970-01-01
        • 2018-03-09
        • 2015-12-19
        • 2017-09-19
        相关资源
        最近更新 更多