我正在尝试在Python 2.7中提示。我有一个无限循环,可以使用str(raw_input('$> '))
获取用户的输入。然后,它会检查一堆“如果'和' elif'语句(每个语句都是一个特定的命令),看看如何处理输入的命令。我还通过“尝试...除了'”来禁用KeyboardInterrupt。声明,并添加了一个'退出'命令。这就是问题所在。 '退出'命令运行良好,打印' Bye'然后退出。但是,其他所有未知命令也是如此。
我尝试过使用内置的quit()
和exit()
函数以及sys.exit()
,但都没有解决问题。我还装了我的“如果' while循环中的语句检查它是否不'退出'命令,然后使用else语句退出。但是,它只打印Command "exit" not found.
我的问题是a)为什么Python会为之后的任何语句执行该代码,以及b)如果可能的话,如何解决这个问题。
我对a)的理论是因为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”,程序将打印“再见”。并退出。
答案 0 :(得分:1)
msg == 'quit' or 'exit'
装置
(msg == 'quit') or 'exit'