如何解决按 ENTER 退出 Python 中的程序不起作用
试图让我的代码在按下 Enter 按钮时退出,但我遇到了 ValueError: invalid literal for int() with base 10: ''
,但它告诉我我的错误出现在 simulations_num = int(simulations)
行上。有人有想法吗?
simulations = input("How many times would you like to run the simulation? ")
# Invalid answer,system exit
if (not simulations) or int(simulations) <=0:
print("That is not a valid number of simulations.")
print("Shutting down.")
SystemExit
simulations_num = int(simulations)
#the rest of my code comes here
我也尝试过 if simulations == ''
无济于事。
我注意到,如果不涉及 simulations_num = int(simulations)
,则代码工作正常,但该部分代码(或类似内容)对于其余代码是必需的
解决方法
您需要raise SystemExit()
,或者只使用sys.exit()
(它的作用相同)。
您需要引发错误,或者至少使用 sys.exit(0)
。
工作原理是这样的:
import sys
if not input(': ').lower() in ['yes','y','1']:
sys.exit(0)
适用于您的示例是这样的
simulations = input("How many times would you like to run the simulation? ")
import sys
# Invalid answer,system exit
if (not simulations) or int(simulations) <=0:
print("That is not a valid number of simulations.")
print("Shutting down.")
sys.exit(0)
simulations_num = int(simulations)
#the rest of my code comes here
raise RuntimeError()
也不错
要解决您的代码:
首先,您需要在 SystemExit 前面添加“raise”关键字才能正常工作。 其次,要构建一种情况,在这种情况下,您必须按 Enter 才能退出程序,您可以使用 input()。
更正版本:
simulations = input("How many times would you like to run the simulation? ")
# Invalid answer,system exit
if (not simulations) or int(simulations) <= 0:
print("That is not a valid number of simulations.")
print("Shutting down.")
input("Press Enter to exit...")
raise SystemExit("Exiting... Reason: invalid input!")
simulations_num = int(simulations)
# the rest of my code comes here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。