首先,我很感谢您提供的任何答案。
无论如何,我是Python的初学者和一般的编程。我试图创建我自己的随机数猜测游戏,其中计算机选择1-15之间的随机数,yada yada。
我的问题是当我试图告诉用户他们的猜测是否太低或太高时,程序要么终止而不通知用户他们是否正确。或者它只是不断循环。
太低了,请再猜一次:14
正确!你已经猜到了我的号码!
太低了,请再猜一次:12
太低,请再次猜测:1
太低了,请再猜一次:
以下是此计划的完整代码:
import random
from time import sleep
number = random.randint(1,15)
play = input("Hello! Would you like to play (Y/N) ")
if play in('y', 'Y'):
sleep(.75)
print("I've chosen a number between 1 and 15.")
sleep(.5)
guess = int(input("What is my number? "))
while guess >= number:
guess = int(input("Too High, please guess again: "))
if guess == number:
print("Correct! You've guessed my number!")
while guess <= number:
guess = int(input("Too Low, please guess again: "))
if guess == number:
print("Correct! You've guessed my number!")
else:
exit
再次感谢您的回答!
答案 0 :(得分:3)
如果我猜低,它会让我进入'猜数低于数字'循环。如果我猜错了数字,那么循环就会结束并将我从程序中抛弃。
你需要做的是有一个while guess!= number的组合循环,检查上下两个并且在循环中相等。
答案 1 :(得分:3)
你的循环逻辑有点扭曲。
while guess >= number:
guess = int(input("Too High, please guess again: "))
if guess == number:
print("Correct! You've guessed my number!")
while guess <= number:
guess = int(input("Too Low, please guess again: "))
if guess == number:
print("Correct! You've guessed my number!")
因此,如果我们先做一个较低的猜测,然后是一个很高的猜测,但我们仍然不正确,我们已经逃过while
对而无法重试。
相反,请尝试使用此单循环结构:
while guess != number:
在其中if
<=
,==
和>=
。干杯!
答案 2 :(得分:2)
按如下方式更改你的时间:
while guess != number:
if (guess > number):
print("Too High!")
else:
print("Too Low!")
guess = int(input("Please guess again: "))
print("Correct! You guessed my number!")