-2
私のコードに「未定義」エラーが発生しているか、または変数が間違って再定義されています。ループが実行されるたびに、ループ内にある変数を再定義しようとしています。しかし、問題は、(私の変数がループの外で定義されているとき)、変数が未定義のエラーになるか、ループが再初期化されたときに変数が変更されず、ゼロにリセットされるということです。ループ内の変数の再定義
def game():
scorePlayer = 0
scoreAI = 0 #If I define it here I get the latter of the two errors explained.
number = random.randint(1, 6)
print ("Your score is ", scorePlayer, ". Your opponent's score is ", scoreAI, ".") #This is where it tells me it is referenced before defined if I define outside the loop.
print (" ")
print ("Rolling...")
print (" ")
time.sleep(2)
print ("You have rolled a ", number, ".")
print (" ")
print ("Player, would you like to hold (enter 'hold') or roll (enter 'roll')?")
print (" ")
decide = raw_input(" ")
if decide == 'hold':
print (" ")
scorePlayer = tempScorePlayer + scorePlayer
gameAI()
elif decide == 'roll': #changed to elif
print (" ")
if number == 1:
print ("You have rolled a 1. You will not gain points from this turn.")
print (" ")
tempScorePlayer = 0
gameAI()
elif number >= 2: #changed to elif
print (" ")
tempScorePlayer = number + tempScorePlayer
game()
if scorePlayer >= 100:
winPlayer()
私は、ループを妨げずに動作させることができないように、どこにでも変数を定義しようとしました。
ご協力いただきありがとうございます。
に等しいです。グローバル変数の値にアクセスすることはできますが、関数の開始時にグローバル変数を宣言することなく、関数全体のスケールでグローバル変数を変更することはできません。 – mauve
ここにループはありません...?あなたは 'グローバル'を見たことがありますか? – fuenfundachtzig