from random import randint
count = 0
Validation = False
def generateNumber():
Number = randint(1, 10)
return Number
def checkNumber(Guess):
Number = generateNumber()
if int(Guess) == Number and count < 1:
return "First time right! Genius?"
Validation = True
elif int(Guess) == Number and count == 2:
return "Correct. Second time, nice!"
Validation = True
elif int(Guess) == Number and count < 4:
return "Correct. Good job."
Validation = True
elif int(Guess) == Number and count > 3:
return "Correct. Took you long enough."
Validation = True
else:
return "Wrong! Try again "
while Validation == False:
Guess = input("Please guess a number between 1 to 10: ")
print (checkNumber(Guess))
count += 1
else:
TryAgain = input("Would you like to try again? y/n \n")
問題は、ユーザーが正しい番号を推測するときです。検証はTrueにする必要があります。したがって、whileループはループを停止します。しかし、プレイヤーが正しい数を推測すると、変数の検証はTrueになりません。関数内の変数の変更
グローバルにプレフィックスを付けない限り、検証はローカルとみなされます。グローバル検証を関数から参照したい場合、それを次のように宣言する必要があります:関数内の 'グローバル検証 '。この方法で、値を変更すると永続化されます –
Hmm。グローバルに追加するときは、関数自体、上の変数宣言、またはwhileループでそれを行います。それは私に悪い構文エラーを与える。 – Soundwave
コードのもう1つの大きな問題は、検証フィールドを設定する前に文字列を返し、関数を効果的に破棄することです。 –