我究竟做错了什么?随机数猜测游戏

时间:2013-03-07 01:48:34

标签: python python-3.x

首先,我很感谢您提供的任何答案。

无论如何,我是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

再次感谢您的回答!

3 个答案:

答案 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!")
  1. 你猜测太高了。低猜测会打断这个。
  2. 你猜测太低了。高猜测会打断这个。
  3. 因此,如果我们先做一个较低的猜测,然后是一个很高的猜测,但我们仍然不正确,我们已经逃过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!")