2

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

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

再次感谢您的任何回答!

4

3 回答 3

3

如果我猜低,它会让我进入“猜数字以下”循环。如果我猜到了这个数字,循环就会结束并将我排除在程序之外。

你需要做的是有一个whileguess!= number的组合循环,并检查循环内的上下和相等。,

于 2013-03-07T01:51:46.983 回答
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. 您在猜测太低时循环。一个高猜测打断了这一点。

因此,如果我们先进行低位猜测,然后进行高位猜测,但我们仍然不正确,我们已经逃脱了这while对配对并且不能再试一次。

相反,试试这个单循环结构:

while guess != number:

而在其中,if对于<===>=。干杯!

于 2013-03-07T01:53:46.983 回答
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!")
于 2013-03-07T01:54:18.187 回答