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")