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

Python在循环时执行,即使条件不满足?

羊舌诚
2023-03-14

我正在制作一个汽车游戏。只有“开始”、“停止”、“退出”命令。无法识别任何其他命令。

command = ""

while command != "quit":
    command = input("Command: ")
    if command == "start":
        print("Car ready to go")
    elif command == "stop":
        print("Car stopped")
    else:
        print("I don't understand that")
else:
    print("Game exited")

除了“退出”之外,所有命令都可以正常工作。使用while循环,它会执行和打印else语句:

I don't understand that
Game exited

命令=“退出”应该呈现当条件False,因此跳过前面只执行外部的其他语句。为什么它执行其他两个语句,甚至认为同时条件不满足?

共有3个答案

巫马山
2023-03-14

Python程序逐行运行。while循环不能保证它的状态,即使整个缩进块都是如此。所以这并不等同于“一旦[条件]不满足,就跳出while块”

您的输入()在time循环中。因此,它将首先执行直到同时循环结束,直到它到达同时循环的顶部并再次检查同时循环的条件。

一个典型的变通方法是

while True:
    command = input("Command: ")
    if command == "quit":
        break
    ...
周龙光
2023-03-14
while command != "quit":
    command = input("Command: ")
    if command == "start":
        print("Car ready to go")
    elif command == "stop":
        print("Car stopped")
    else:
        print("I don't understand that")
else:
    print("Game exited")

看看你的代码,你得到输入“退出”,然后它归结为第一个如果(不正确)-

像这样更改代码:

while command != "quit":
    command = input("Command: ")
    if command == "start":
        print("Car ready to go")
    elif command == "stop":
        print("Car stopped")
    elif command != "quit":
        print("I don't understand that")
else:
    print("Game exited")
汪正雅
2023-03-14

while else的工作方式如下:如果while条件不满足,则执行else
因此,当您在程序中键入“退出”时,如果命令==“开始”:和elif命令==“停止”:条件不满足
因此,执行else,打印,我不理解这一点。

现在,再次检查循环的条件:命令!
但是,这个条件是False,因为命令的值现在是退出

所以

else:
    print("Game exited")

执行,因此您的输出成为

I don't understand that
Game exited

 类似资料:
  • 我正在尝试使用一个do while循环来找出用户是想将一只狗还是一只猫检查到Java的养狗系统中。其思想是,当提示时输入“dog”或“cat”,任何输入都将导致错误,并且他们将再次被提示输入文件名。 如果输入了“cat”或“dog”,那么将为程序分配等效的文件(dogs.txt或cats.txt),然后系统将运行并将数据加载到程序中。 以下是当前的变量: 以及导致问题的方法: 下面是运行代码时打印

  • 问题内容: 我已经编写了一个包含循环的“ Hangman”游戏,不断询问用户字母,直到他们解决单词或耗尽生命。奇怪的是,在满足条件时循环不会停止。 这是包含循环的游戏逻辑的实现: 可变结果是从方法中获取返回值。这是实现。 难道是我返回导致循环不断循环的值的方式吗?我这样声明了这些值: 问题答案: 逻辑上,根据德摩根定律, 是相同的 这永远是一个真实的表达。 条件可能应该是 当应用与上述相同的法律时

  • 我试图用Python做一个简单的计算器。 我希望用户写“and”,然后while循环应该结束。当我运行它并输入随机文本时,while循环工作并显示“重试”。然而,当我实际输入正确答案(“add”)时,while循环并没有结束——相反,它一直在说“再试一次”。 为什么会这样?我的代码怎么了?

  • 所以我必须在eclipse中为我的类创建一个java项目。分配是创建一个程序,允许用户在程序中输入整数,直到输入某个整数(42)。输入整数(42)后,程序将为1。平均输入的所有数字。2、显示输入的最小值和最大值。3、输入的数字总数。这些必须在不计算(42)的情况下进行计算。这就是我目前所拥有的。我可以从用户那里获得输入,一旦他们输入42,程序就会停止并显示总数,但包括42。我不知道如何为输入添加一

  • 当我像这样做一个常规的while循环时 它打印 但第二个while循环在满足条件后再次运行。 所以结果是 “佛罗多是一个很好的霍比特人的名字”难道它不应该停止印刷吗 我设置了x的条件 编辑:哦,我现在明白了,哈哈,我想增量是在代码的末尾,开始是0