Pythonで "Reversi"ゲームのプログラミングに問題があります。私はゲームボードのサイズをオプションにしたいので、ユーザーは例えば4x4または10x10(それ以上のものではありません)を要求することができます。しかし、私はコーディングしようとした:Pythonの "変数が定義されていません"エラー
答えて
あなたはちょうどあなたがその変数を使用する関数でグローバルQを書くことをあなたがするQ.のグローバル値を使用したいのpythonを伝えるためにグローバルを使用する必要があります。
Pythonでグローバル変数を使用するのは、実際に必要で正当化される場合を除いて一般的には良い習慣ではありません。このケースでは、この変数を必要とする関数の入力引数として単に 'Q 'を渡すのが良いと思います。 – Eskapp
この質問には複数の問題があります。
Qを定義する場所を確認することはできません。スローされたエラーを見て、おそらくローカルスコープで定義しています。 Qはこのローカルスコープ内にのみ存在します。
今何が起こるかを確認するには:
def foo():
Q = input("which size of board would you like? for example a 4x4 is a 4")
print(Q)
foo()
print(Q)
>> which size of board would you like? for example a 4x4 is a 48
>> 8
>> Traceback (most recent call last):
File "<ipython-input-37-56b566886820>", line 1, in <module>
runfile('C:/Users/idh/stacktest.py', wdir='C:/Users/idh')
File "c:\users\idh\appdata\local\continuum\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 688, in runfile
execfile(filename, namespace)
File "c:\users\idh\appdata\local\continuum\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/idh/stacktest.py", line 15, in <module>
print(Q)
NameError: name 'Q' is not defined
Qを定義するあなたの方法は、とにかくあなたのコードの残りの部分を壊しれる文字列を返します。
Q = int(input("Which size of board would you like?")
for i in range(Q):
print(i)
>> Traceback (most recent call last):
File "<ipython-input-39-5abb59a2214a>", line 1, in <module>
for i in range(Q):
TypeError: 'str' object cannot be interpreted as an integer
以下のようなものを試してみてください:
try:
Q = int(input("Which size of board would you like? For example, a 4x4 board is a 4 \n\n >>"))
except:
print("Requires an integer between 4 and 10")
Q = int(input("Which size of board would you like? For example, a 4x4 board is a 4 \n\n >>"))
def whatever_function1(*args, **kwargs):
whatever it is supposed to do
return whatever it is supposed to return
def whatever_function2(*args, **kwargs):
whatever it is supposed to do
return whatever it is supposed to return
etc
alternatively, you can manually pass Q through to each function after defining it:
Q = int(input("What size would you like?\n")
def getNewBoard(Q):
# Creates a brand new, blank board data structure.
board = []
for i in range(Q):
board.append([' '] * Q)
return board
質問は非常に基本的なものであるという事実に関して、私は '* args'と' ** kwargs'という言葉がこの良い答えを読んでいる人にとって理解しにくいかもしれないと思います。そこで、これらのコンセプトについてもっと知るためのリンクです:https://stackoverflow.com/questions/36901/what-does-double-star-and-star-do-for-parameters – Eskapp
- 1. Python、エラー: "関数が定義されていません"、
- 2. Python 3 - クラスの変数が定義されていません
- 3. Pythonで変数が定義されていません
- 4. 参照エラー:変数が定義されていません
- 5. エラー:変数が定義されていません
- 6. Pythonのエラー: "グローバル名 'カウンタ' が定義されていません"
- 7. 変数定義されていませんエラー
- 8. Pythonユニットテスト設定関数 'が定義されていません'
- 9. PythonエラーNameError:name '__tablename__'が定義されていません
- 10. Python Recrusive Statementエラーが定義されていません
- 11. Python: "名前が定義されていません"エラー
- 12. pythonエラー - NameError:name download_urlが定義されていません
- 13. Pythonエラー:名前 'admin'が定義されていません
- 14. インポートされた変数が定義されていません
- 15. インポートされた変数が定義されていません
- 16. 関数の変数が定義されていません
- 17. res.renderのエラー、関数が定義されていません
- 18. py2neo.database.status.CypherSyntaxError:変数が定義されていません
- 19. 可変変数が定義されていません
- 20. グローバル関数変数が定義されていません
- 21. 変数が関数で定義されていません
- 22. 変数が定義されていませんか?
- 23. Python pygame関数が定義されていません
- 24. Pythonマルチプロセッシングプール関数が定義されていません
- 25. Python関数 - 戻り値が '定義されていません'
- 26. Python ggplot-ggsave関数が定義されていません
- 27. Python - 関数が定義されていません
- 28. Pythonで定義関数がスタックされていません
- 29. asyncio関数が定義されていませんpython 3.6
- 30. 参照エラー:関数が定義されていません - Firefox
は、貼り付けた1と同じ元のコードであなたのインデントですか?その理由だけではうまくいきません。 –
表示されているコードのインデントが悪い*と*は、 'Q'という言葉に全く言及していません。 – chepner
申し訳ありませんが、偶然古いコードを投稿しました – Aurum