在 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 运行