首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序在执行“Exits”语句之前退出

问程序在执行“Exits”语句之前退出
EN

Stack Overflow用户
提问于 2015-03-08 00:21:40
回答 1查看 67关注 0票数 0

我试图用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‘语句,并执行输入命令的代码。

下面是我的代码的简化版本,并提前感谢您。

代码语言:javascript
复制
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',程序将打印’再见‘并退出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-08 00:38:14

代码语言:javascript
复制
msg == 'quit' or 'exit'

手段

代码语言:javascript
复制
(msg == 'quit') or 'exit'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28921695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档