【问题标题】:How do I create a proper while loop?如何创建正确的 while 循环?
【发布时间】:2019-05-29 03:37:36
【问题描述】:

我正在尝试创建一个简单的猜数字游戏。据我了解,如果用户输入不等于 RNG 生成的数字,我可以使用 while 循环作为正确的 goto 函数。包括我创建的代码。我要做的是告诉程序如果x<y,print("Too low. Try again"),然后循环返回以询问用户输入。 x>y 的原理相同。当数字猜对时,它应该显示一条消息,要求输入 Y/N,然后关闭程序或循环回到开头。我该怎么做呢?

我尝试过包含一个 while 循环,但我遇到了以下问题:假设 RNG 生成 50。如果我猜为 49,它会打印 x<y 消息,要求另一个输入,但它会即使在新输入 x>y 或 x==y 中,也会继续显示 x<y 消息。

另外,当答案被正确猜到时,我不知道该怎么做,所以如果他们回答 Y,程序会重新启动。

最后,当游戏提示用户回答 Y/N 时,终端会在用户输入之前不知道为什么会显示字母“Y”。

print()
print("Guess an integer between 1-100.")
import random
y=random.randint(1,101)
print(y)
x=int(input())
if x==y:
    print(x, "is correct! Would you like to try again? Y/N")
    if input("Y"):
        print("Too bad! This game isn't finished yet!")
        exit()
    if input("N"):
        print("Good! This game isn't finished yet!")
        exit()
else:
    if x<y:
        print("Too low. Try again.")
    if x>y:
        print("Too high. Try again.")

【问题讨论】:

标签: python-3.x while-loop


【解决方案1】:

好的,所以我不确定您的 if 语句和 while 循环系统是如何工作的,但我知道您错误地使用了输入函数。

如果你想检查输入是否等于a thing,你应该这样做:if input('&gt;&gt;&gt; ') == 'a thing'

这将输出&gt;&gt;&gt;,用户可以输入他们的响应,如果等于a thing,则返回true。

我想我知道这是做什么的,但我不确定。我将在本文的结尾写上我会做的事情。

if x==y:
    print(x, "is correct! Would you like to try again? Y/N")
    if input("Y"):
        print("Too bad! This game isn't finished yet!")
        exit()
    if input("N"):
        print("Good! This game isn't finished yet!")
        exit()
while True:
    if x<y:
        print("Too low. Try again.")
        int(input())
    if x>y:
        print("Too high. Try again.")
        int(input())

我认为您正在尝试检查用户是否可以一口气猜出它,然后告诉他们他们的猜测是过高还是过低。 我会这样做:

import random

print('guess a number game (1-100 range)')

y = random.randint(1, 101)

x = int(input('>>> '))

if x == y:
    print('yay, you got it first try')
    exit()
else:
    print('nope')
    while x != y:
        x = int(input('>>> '))
        if x < y:
            print('Too low!')
        elif x > y:
            print('Too high!')
        elif x == y:
            print('E P I C')
            exit()

这是一个示例输出:

guess a number game (1-100 range)
>>> 48
nope
>>> 50
Too high!
>>> 25
Too low!
>>> 35
Too low!
>>> 45
Too high!
>>> 40
Too low!
>>> 44
E P I C

我有一段时间没来这里了(哈哈),所以这可能不是最好的答案。不过,希望这会有所帮助!

【讨论】:

    【解决方案2】:

    我认为这就是您要寻找的模式。

    import random
    
    EXIT = False
    
    while True:
      if EXIT:
         break
      y=random.randint(1,101)
      print("Random ",y)
      while not EXIT:
        print("Guess an integer between 1-100.")
        x=int(input())
        if x==y:
            print(x, "is correct! Would you like to try again? (Y/N)\n")
            z = input()
            if z == 'Y':
                print("Too bad! This game isn't finished yet!\n")
                break
            if z == 'N':
                print("Good! This game isn't finished yet!\n")
                EXIT = True
                break
        else:
            if x<y:
                print("Too low. Try again.\n")
            if x>y:
                print("Too high. Try again.\n")
    

    输出将是。

    Random  89
    Guess an integer between 1-100.
    20
    Too low. Try again.
    
    Guess an integer between 1-100.
    100
    Too high. Try again.
    
    Guess an integer between 1-100.
    89
    89 is correct! Would you like to try again? (Y/N)
    
    Y
    Too bad! This game isn't finished yet!
    
    Random  36
    Guess an integer between 1-100.
    36
    36 is correct! Would you like to try again? (Y/N)
    
    N
    Good! This game isn't finished yet!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-29
      • 2017-10-05
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      相关资源
      最近更新 更多