我试图用Python2.7发出提示符。我有一个无限循环,它将使用str(raw_input('$> '))获取用户的输入。然后,它检查一组'if‘和'elif’语句(每个语句都是特定的命令),以查看如何处理输入的命令。我还通过‘try.除了’语句禁用了KeyboardInterrupt,并添加了'exit‘命令。问题就在这里。“退出”命令运行良好,打印“再见”,然后退出。然而,其他未知的命令也是如此。
我尝试过使用内置的quit()和exit()函数以及sys.exit(),但它们都没有解决问题。我还将我的' if‘语句封装在一个while循环中,该循环检查它是否不是'exit’命令,然后使用else语句退出。然而,它只是打印Command "exit" not found.
我的问题是:为什么Python会对之后的任何语句执行该代码,以及(如果可能的话)如何解决这个问题。
我的理论是,因为Python是逐行解释的,所以它会读取这一行,不管出于什么原因,它都会执行它。但是,如果命令匹配,则停止查看' if‘语句,并执行输入命令的代码。
下面是我的代码的简化版本,并提前感谢您。
from sys import exit as die
while True:
msg = str(raw_input('$> '))
if msg == 'test':
print '123'
elif msg == 'quit' or 'exit':
print 'Bye'
die()
elif msg == 'test2':
print '456'
else:
print 'Command "%s" not found' % (msg)如果我运行'test2‘命令,或一个未知的命令'foo',程序将打印’再见‘并退出。
发布于 2015-03-08 00:38:14
msg == 'quit' or 'exit'手段
(msg == 'quit') or 'exit'https://stackoverflow.com/questions/28921695
复制相似问题