我注意到在任何python 3程序中,无论你按CTRL c它是多么基本,它会使程序崩溃,例如:
test=input("Say hello")
if test=="hello":
print("Hello!")
else:
print("I don't know what to reply I am a basic program without meaning :(")
如果你按下CTRL c,那么错误将是KeyboardInterrupt是否会阻止程序崩溃?
我想这样做的原因是因为我喜欢让我的程序有错误证明,每当我想把东西粘贴到输入中时我不小心按下CTRL c我必须再次通过我的程序..这只是很烦人。
答案 0 :(得分:5)
control-c无论您多么不想要它,都会提升KeyboardInterrupt
。但是,您可以非常轻松地处理错误,例如,如果您想要让用户按两次control-c以便在获取输入时退出,则可以执行以下操作:
def user_input(prompt):
try:
return input(prompt)
except KeyboardInterrupt:
print("press control-c again to quit")
return input(prompt) #let it raise if it happens again
或强制用户输入内容,无论他们使用control-c
多少次,您都可以执行以下操作:
def input_noQuit(prompt):
while True: #broken by return
try:
return input(prompt)
except KeyboardInterrupt:
print("you are not allowed to quit right now")
虽然我不推荐第二个,因为使用快捷方式的人会很快对你的程序感到恼火。