在python3中制作更高或更低的游戏的问题。多个if语句

2024-04-26 05:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我对多个if语句有问题。我知道我的代码有什么问题,但我找不到解决办法。因此,当我运行程序时,“较高”部分起作用,但如果我猜“较低”部分不起作用。解释器从读取if语句转到elif语句。那不是我想要的。如何让它在进入elif语句之前先检查if语句和if语句。我试过了,但似乎没能成功。 提前谢谢。你知道吗

# Higher or lower card game

import random

x = random.randint(1, 14)

y = random.randint(1, 14)

print('The number is ', x, '.')

while True:

    print('higher or lower?')
    if input() in {'higher', 'h'} and y >= x:
        print('Good guess the number was ', y)
        x = y
        y = random.randint(1, 14)
    elif y < x:
        print('Bad guess , the number was ', y)
        break
    if input() in {'lower', 'l'} and y < x:
        print('Good guess, the number was ', y)
        x = y
        y = random.randint(1, 14)
    elif y >= x:
        print('Bad guess, the number was ', y)
        break
    continue

Tags: ortheinnumberinputifrandom语句
1条回答
网友
1楼 · 发布于 2024-04-26 05:31:22

我猜是不起作用,因为你在每个周期得到两次输入。你知道吗

你应该试试这个:

import random

x = random.randint(1, 14)

y = random.randint(1, 14)

print('The number is ', x, '.')

while True:

    print('higher or lower?')
    guess = input()
    if guess in {'higher', 'h'} and y >= x:
        print('Good guess the number was ', y)
        x = y
        y = random.randint(1, 14)
    elif guess in {'higher', 'h'} and y < x:
        print('Bad guess , the number was ', y)
        break
    elif guess in {'lower', 'l'} and y < x:
        print('Good guess, the number was ', y)
        x = y
        y = random.randint(1, 14)
    elif guess in {'lower', 'l'} and y >= x:
        print('Bad guess, the number was ', y)
        break
    else:
        print('Invalid command')
        break
    continue

所以基本上每一次迭代你只需要在输入中接受一个命令,并在此基础上构建你的逻辑。你知道吗

网友
2楼 · 发布于 2024-04-26 05:31:22

你可能想要一些类似的东西:

while True:

   print('higher or lower?')
   ans_in = input()

   if ans_in in {'higher', 'h'}:

       if (y >= x):
          print('Good guess the number was ', y)
          x = y
          y = random.randint(1, 14)

       elif (y < x):
          print('Bad guess , the number was ', y)
          break

   elif ans_in in {'lower', 'l'}:

       if (y < x):
          print('Good guess, the number was ', y)
          x = y
          y = random.randint(1, 14)

       elif (y >= x):
          print('Bad guess, the number was ', y)
          break

   continue

注意,由于break语句,一个“错误的猜测”将结束游戏。如果你想在得到一个“错误的猜测”之后继续,你可以简单地删除break语句。你知道吗

相关问题 更多 >

    热门问题