【发布时间】:2015-02-09 18:04:45
【问题描述】:
如果您在第一次尝试时没有正确猜出数字,则无论您是否猜对了正确的数字,程序都会运行直到您猜完为止。我的 while 循环或 if 语句有问题吗?
while True:
try:
Guessed_number = int(raw_input("What is your guess? \n"))
except ValueError:
print("Sorry, that is not a valid guess. Please guess again.")
continue
else:
break
def Number_guesser(Guessed_number):
guesses= 3
while guesses > 0:
if Random_number == Guessed_number:
print "Congratualations! You won :)"
break
elif Guessed_number > Random_number:
print "You guessed higher than the number. Try again! \n"
print Random_number
Guessed_number= raw_input()
guesses= guesses-1
elif Guessed_number < Random_number:
print "You guessed lower than the number. Try again! \n"
Guessed_number= raw_input()
guesses= guesses-1
if guesses == 3:
print "You have 3 guesses left!"
elif guesses == 2:
print "You have 2 guesses left!"
elif guesses == 1:
print "You have 1 guess left!"
elif guesses == 0:
print "You ran out of guesses :( \n The correct answer was........*drum roll*"
print Random_number
print Number_guesser(Guessed_number)`
【问题讨论】:
-
你的缩进肯定不正确(或者你粘贴的方式),这对python程序很重要。
-
首先,每次调用 Number_guesser 函数时,您都将
guesses重新定义为 3。根据函数中的逻辑,这看起来不是您的意图。接下来,您将在Number_guesser函数中获得更多输入,但您只能这样做一次。
标签: python if-statement while-loop