首页 > 解决方案 > 为什么我的解析器在作业应该结束时不断循环打印语句?

问题描述

我正在制作一种简单的编程语言 WMC,并且正在制作一个“END()”命令,但是每当我在使用“Display”命令时使用它时,它只会显示命令的名称

if Command[P] == "Display" and Running == "":
    Running = "Display"
elif Running == "Display":
    print(Command[P])
elif Command[P] == "END()":
    if Running != "":
        Running = ""

同时我不知道为什么。

我尝试移动 if 语句所在的位置,但没有运气,虽然对 python 并不陌生,但我对数组并不陌生,并且在所说的“数组”中创建命令。这是我的源代码:

Loop = 1

Command = []

P = -1

Running = ""

while Loop == 1:
    P += 1 
    In = input()
    if In == " ":
        continue
    else:
        Command.append(In)
    if Command[P] == "Display" and Running == "":
        Running = "Display"
    elif Running == "Display":
        print(Command[P])
    elif Command[P] == "END()":
        if Running != "":
            Running = ""
        elif Running == "":
            print("CLOSING...")
            exit()

我希望'END()'命令将我带出显示循环,但它只显示“END()”并继续进行,好像什么都没做,我做错了什么?

标签: pythonloops

解决方案


如果您输入“显示”,则运行被分配给“显示”。没有办法将 Running 分配给其他任何东西,此后您输入的所有命令都将简单地打印,原因是:

elif Running == "Display":
    print(Command[P])

推荐阅读