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すると、最初は機能しますが、2 回目のループでは、その名前が整数変数に関連付けられているため、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別の名前を使用してください。

編集:ループすると、2回目の反復がロールアラウンドするまでに、変数inputがユーザー入力に再バインドされるため、組み込み関数ではなくなり、ユーザー入力を変換したばかりの整数になります。名前inputは、同時に 2 つの異なるものを参照することはできません。

于 2012-06-25T16:52:18.537 に答える
3

初めて電話するとき

input("Select a spot:")

正しく動作します-文字列を返し、intに変換してに保存しinputます。

2回目に呼び出すとinput、保存した整数を取得して、関数として実行しようとします。これは失敗し、表示されたエラーメッセージが表示されます。

于 2012-06-25T17:00:14.087 に答える