在 python 中使用 quit() [重复]

Posted

技术标签:

【中文标题】在 python 中使用 quit() [重复]【英文标题】:Using quit() in python [duplicate] 【发布时间】:2017-10-08 03:44:58 【问题描述】:

我只是试图在用户输入非数值的情况下放入一个异常,以便程序给出错误消息并退出。但是,像我一样使用quit(),它仍然会尝试运行代码的结尾(variable not defined 错误),并给我一个内核已经死亡的错误。退出异常代码的正确方法是什么?

try:
    inp=raw_input("Enter Hours Worked ")
    hours=float(inp)
    inp=raw_input("Enter Pay Rate ")
    rate=float(inp)
except:
    print "Error: Enter a numeric value"
    quit()

if hours<=40:
    pay = hours * rate
else:
    pay = (hours-40) * rate * 1.5 + (40 * rate)
print "Gross Pay: $",pay

【问题讨论】:

你能提供示例输入和堆栈跟踪/获得的输出吗? 内核死了,因为quit 退出了解释器...你想要发生什么 用户必须输入数值来计算他们的工资。当他们输入非整数/浮点值时,我试图打印一条错误消息。 如果你只是想打印一条消息,你为什么用quit???同样,您认为quit 会做什么?为什么不直接删除它? @ABarra 好吧,你必须先import sys,然后才能打电话给sys.exit() 【参考方案1】:

您要查找的可能是sys.exit(),来自sys 模块。

因此,如果您在所有内容的开头import sys,您的代码将改为如下所示:

try:
    inp=raw_input("Enter Hours Worked ")
    hours=float(inp)
    inp=raw_input("Enter Pay Rate ")
    rate=float(inp)
except:
    print "Error: Enter a numeric value"
    sys.exit() # use an exit code to signal the program was unsuccessful

if hours<=40:
    pay = hours * rate
else:
    pay = (hours-40) * rate * 1.5 + (40 * rate)
print "Gross Pay: $",pay

【讨论】:

exit() 不是sys.exit() 糟糕,错过了sys.。感谢您的提醒;) 谢谢你们。现在给我'发生异常,使用 %tb 查看完整的回溯。但这是在做这项工作。感谢您的帮助!

以上是关于在 python 中使用 quit() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Excel.Application Object .Quit 使 EXCEL.EXE 运行

quit() 在 Python-3.x 和 IPython 中的工作方式不同

scala shell 窗口退出不了的解决办法。

Pygame在一定时间后退出[重复]

在Python中使图形更长[重复]

在 Python 中,从列表中删除重复项以使所有元素都是唯一的*同时保留顺序*的最快算法是啥? [复制]