Python多项选择游戏,不会在一次选择后结束


import random
from random import randint
number = randint(1, 500)
guess = input("The computer has chosen a random number. Guess the number: ")
guess = int(guess)
while guess == number:
print("Congrats, you have won")
break
if guess > number:
print("Lower")
if guess < number:
print("Higher")

这段代码只允许用户输入一次猜测,然后程序结束。谁能帮我修一下这个

你应该考虑你的循环条件。

  • 您想什么时候重复?这是循环条件
    • 当猜测正确时。guess != number
  • 您想重复什么?把这些放到循环中
    • 请求猜测guess = int(input("Your guess: "))
    • if guess >< number: ...偏高或偏低时打印
  • 什么你不想重复?
    • 在循环之前需要这个
      • 正在决定正确的号码。
      • 设置初始猜测,以便进入一次循环
    • 在循环之后需要这个
      • 打印"correct!"消息,因为只有在猜测正确时才退出循环

我们有:

number = random.randint(1, 100)
guess = 0
while guess != number:
guess = int(input("Your guess: "))
if guess > number:
print("Lower")
elif guess < number:
print("Higher")
print("Correct!")

现在,你的while循环是无用的,一旦你在它你立即打破。其余代码不在循环中。

你应该让所有的代码都有一个无限循环,当有匹配时中断:

from random import randint
number = randint(1, 500)
while True:                    # infinite loop
guess = input("The computer has chosen a random number. Guess the number: ")
guess = int(guess)         # warning, this will raise an error if
# the user inputs something else that digits
if guess == number:        # condition is met, we're done
print("Congrats, you have won")
break
elif guess > number:       # test if number is lower
print("Lower")
else:                      # no need to test again, is is necessarily  higher
print("Higher")

必须在循环中接受输入,因为每一步的值都必须更新。

from random import randint

number = randint(1, 500)
while True:
guess = input("The computer has chosen a random number. Guess the number: ")
guess = int(guess)


if guess == number:
print("Congrats, you have won")
break
if guess > number:
print("Lower")
if guess < number:
print("Higher")

最新更新