【发布时间】:2017-07-13 07:14:22
【问题描述】:
对于我在 python 中的项目,我将两个输入说 a 和 b 作为整数值。现在代码如下:
import sys
a = input("enter a")
b = input("enter b")
if a < b:
print(" enter a greater than b and try again")
sys.exit()
# Rest of the code is here
现在这工作正常。但是会创建一个额外的语句
An exception has occurred, use %tb to see the full traceback.
SystemExit
我不希望这样,因为用户可能认为代码的功能不正确。那么有没有什么办法不显示这个语句或任何其他函数会退出代码而不打印除了我写的行之外的任何东西?
注意 我尝试了 exit() 但它继续执行它下面的代码。另外,我注意到 this related question 但那里列出的方法在这种情况下不起作用。
编辑:我正在添加更多信息。我需要把这个退出函数放到一个自定义函数里面,这样每次用户输入一些错误的数据,代码就会调用这个自定义函数,退出代码。 如果我尝试将我的代码放在 if else 语句中,例如
def end():
print("incorrect input try again")
os.exit()
a = input("enter data")
if a < 10:
end()
b = input ("enter data")
if b < 20:
end()
# more code here
我不知道为什么,但我什至不能在最后定义这个用户定义的函数,因为它会引发未定义函数 end() 的错误。我在 Windows 上使用带有 Spyder 的 Python。
【问题讨论】:
-
对不起,我以为我已经解决了这个问题,但不幸的是我没有。所以请帮忙!!
-
@moooeeeep 目前我正在使用 Spyder 在 Windows 上进行编码,但我的代码中没有任何此类内容。
-
那么这似乎是相关的:stackoverflow.com/q/25928377/1025391(虽然可能有点过时,因为明显的行为略有不同)你最好直接在你的问题中陈述这些信息。
-
(希望你使用的是 Python 3?)