由于某些原因,即使我正确地获得了答案,也无法打印“正确答案”。我不知道为什么。

import random
y = random.randint(1,6)

start_game = input("Pick a number between 1 and 6")


while start_game != y:
  if start_game  > y:
    print("guess too high")
    start_game = input("Pick a number between 1 and 6")
  elif start_game < y:
    print("guess too Low")
    start_game = input("Pick a number between 1 and 6")
  else:
    print("correct guess")`

最佳答案

在检查if, elif, else条件之前,请退出while循环。
您检查的第一件事是while循环的条件,如果y = start_game则退出它。您将不会达到else条件。

在while循环之后将打印内容移出。

另外,您需要将输入的返回值强制转换为int。

这条路:

    import random
    y = random.randint(1,6)

    start_game = int(input("Pick a number between 1 and 6"))


    while start_game != y:
      if start_game  > y:
        print("guess too high")
        start_game = int(input("Pick a number between 1 and 6"))
      elif start_game < y:
        print("guess too Low")
        start_game = int(input("Pick a number between 1 and 6"))
    print("correct guess")


事实是,它将进入循环,首先检查循环的条件,然后将检查if语句BUT,if,elif,否则在条件之一为真时立即停止检查,这意味着即使y < start_game,您将要求另一个输入,但是由于您输入了if,因此不会检查elif和else条件,导致循环结束,然后返回到检查循环条件等。

关于python - 如何在“猜数字”游戏中调试错误的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49879874/

10-11 05:01