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가되지 않습니다.함수에서 변수 변경하기
유효성 검사는 전역으로 접두사를 붙이지 않는 한 로컬로 간주됩니다. 함수에서 전역 유효성 검사를 참조하려면 함수에서 '전역 유효성 검사'와 같이 선언해야합니다.이 방법으로 값을 변경할 때 지속성이됩니다 –
흠. 전역에 추가 할 때, 함수 자체, 위에있는 변수 선언 또는 while 루프에서 수행합니다. 그것은 나에게 잘못된 구문 오류를 제공합니다. – Soundwave
코드의 또 다른 주요 문제점은 유효성 검사 필드를 설정하기 전에 함수를 효과적으로 중단하는 문자열을 반환한다는 것입니다. 올바른 순서에 대한 내 대답을보십시오 ('Validation = True' 만'return "보다 ...") –