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循环将停止循环。但是当玩家猜测到正确的数字时,变量验证不会变为真。更改函数中的变量
验证被认为是本地的,除非您在全局前缀。如果你希望从一个函数中引用你的全局验证,你需要声明如下:函数中的'global Validation',这种方式当你改变它的值时它会持续 –
嗯。当我为它添加全局变量时,我会在函数本身,顶部的变量声明或while循环中执行它。它给我一个不好的语法错误。 – Soundwave
你的代码中的另一个主要问题是你返回一个字符串,在设置验证字段之前有效地打破了该函数。请参阅我的答案以获得正确的顺序('Validation = True' only than'return“...”') –