私はあなたの頭の中で0と100の間の数字を推測する小さなゲームを書いていました。そして、コンピュータはそれを推測しようとします。ここでは、コードの抜粋です:なぜ私はそれをグローバルに宣言したにもかかわらず、 'foo'がローカル変数であるとPythonが言っていますか?
import random
global foo
foo=input()
global k
k=random.randint(0,100)
def f():
if foo.lower()=='too low':
k=random.randint(k,100)
foo=input('The number that I guessed is' + ' ' + str(k) +'. Please give your comment.')
print(k)
f()
それはというエラーがスローされます。このサイトに
UnboundLocalError: local variable ‘foo’ referenced before assignment
他の記事global
を使用することをお勧めします。私はして、まだエラーを取得しています。 Pythonは、なぜそれがグローバルであると宣言したとしても、foo
はローカル変数であると言っていますか?そして、どうすればこのバグを取り除くことができますか?このような関数の内部にグローバルスコープから
は – PRMoureu
@PRMoureuは、私の以前のプログラムでは、私は関数の外にそれを使用した関数の内部で使用する必要があり、それはかなり働きましたよく –
@AaryanDewanあなたはそれを間違ってやっていましたが、決してそれに再割り当てしなかったので問題はありませんでした。グローバルスコープからしか読み込めない場合は、宣言する必要はありません。 –