【问题标题】:Number guessing game does not recognize correct answer after 1st guess猜数字游戏在第一次猜后无法识别正确答案
【发布时间】: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


【解决方案1】:

我发现每次提示玩家再次猜测时,我的 raw_input 都需要是一个整数。

Guessed_number= int(raw_input())

【讨论】:

  • 很高兴您发现了问题!但是,可以做很多事情来清理您的代码。查看this gist 了解其他一些想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
相关资源
最近更新 更多