当前位置: 首页 > 知识库问答 >
问题:

即使输入正确,我的while循环也不会退出[重复]

越嘉石
2023-03-14

我的while循环一直在进行,即使我输入了y、yes、n或no。

import random

def rollDice():
    diceRoll = random.randint(1,6)
    return diceRoll
    
def reRollDie1():
    reRollDie1 = input("Would you like to re roll die 1?")
    reRollDie1.lower()
    
    while reRollDie1 != "yes" or reRollDie1 != "y" or reRollDie1 != "no" or reRollDie1 != "n":
        reRollDie1 = input("Sorry that answer is invalid please try again. Would you like to re-roll die 1? ")         
reRollDie1()

输出:

抱歉,该答案无效,请重试。是否要重新滚动模具1?不

抱歉,该答案无效,请重试。是否要重新滚动模具1?对

抱歉,该答案无效,请重试。是否要重新滚动模具1?对

共有1个答案

秦涵涤
2023-03-14

您正在使用检查所有选项。由于每个选项都是一个不等式测试,并且每个选项都不同于其他选项,因此该条件始终为真。相反,我建议在{“是”、“是”、“否”、“n”}中进行一次测试,例如重新注册1。

 类似资料:
  • 我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢

  • //在下面的程序中,在内部,当用户收到指令时,他可以简单地进入哨兵退出while循环,但是,当您得到希望购买的票的结果时,按999并不退出程序

  • Imma java新手,所以我试着学东西。我创建了一个布尔方法,这是一个小的骰子游戏。我需要这个方法是从main方法调用,并继续玩,而返回值是真的(游戏是赢的),但停止执行,如果返回值是假的。我也需要多少次球员赢了。所以我创造了这样的东西: 初始化为私有静态int

  • 我试图检查用户是否输入了他们的名字,有或没有空格,即乔·布洛格斯。他们的名字中不能有特殊的字符或数字,否则会弹出一条错误信息,即Jo3_Bl0ggs。我想做的是,如果他们以错误的格式输入他们的名字,一条错误信息将被提醒,程序将要求用户再次输入他们的名字,直到他们输入正确。 我使用的是当循环这样做,如果它是正确的,我改变了标志的值,并打破了循环,如果不是,我会重新运行setName()函数,要求他们

  • 问题内容: 在下面的代码中,我希望循环在+ + =时立即退出。但是,使用语句进行测试表明它一直持续到循环完成为止。我尝试过,然后在语句集中进行设置,但这会导致无限循环。我认为使用然后设置可能有效,但也可以一直运行到循环结束为止。什么是最优雅,最快的退出方式?谢谢。 问题答案: 该循环将只匹配条件时,当控制返回到它,即循环完全执行。因此,这就是即使满足条件也不会立即退出程序的原因。 但是,如果条件没

  • 出现的问题是,当用户确实输入了一个正数时,它仍然忽略输入,并要求用户再次输入一个正整数。我想我只是没有正确退出循环,但我不确定是如何退出的。