2024-05-14 23:14:50 发布
网友
我写了康威人生游戏的一个实现。我设置了两种模式,一种是自动模式,另一种是手动模式,我的意思是输出游戏结果的方式。对于自动模式,如果没有ctrl+q或ctrl+c(打印出错误消息),我无法停止正在运行的程序。那么,有没有什么方法可以让我停止运行的程序,并通过按我自己定义的某个键返回python >>>提示符,比如,ctrl+k。谢谢您。在
>>>
您是从一个iteractive提示符运行它,然后只想返回到提示符。或者,您是在shell中运行它,并希望在中获得python提示符,但要知道程序执行的当前状态?在
对于后面的代码,您可以在代码中出现键盘中断异常,然后中断到python调试器(pdb)。在
import pdb try: mainProgramLoop() except (KeyboardInterrupt, SystemExit): pdb.set_trace()
如果您能够截获按键引发的事件并调用特定函数,则可以执行以下操作:
def prompt(): import code code.interact(local=locals())
或者如果您使用IPython:
这将打开一个python或ipythonshell,您可以在其中访问当前环境。在
安德烈干杯
您不能使用任意按键,但是要处理正常的中断(例如control-C)而不出错,您只需要捕获它引起的KeyboardInterrupt异常,也就是说,只需用
KeyboardInterrupt
try: functionthatloopsalot() except KeyboardInterrupt: """user wants control back"""
要将控制权“带回”交互式提示,脚本必须使用-i(对于“交互式”)运行,否则必须使用更高级的交互式Python shell(如ipython)。在
-i
您是从一个iteractive提示符运行它,然后只想返回到提示符。或者,您是在shell中运行它,并希望在中获得python提示符,但要知道程序执行的当前状态?在
对于后面的代码,您可以在代码中出现键盘中断异常,然后中断到python调试器(pdb)。在
如果您能够截获按键引发的事件并调用特定函数,则可以执行以下操作:
或者如果您使用IPython:
^{pr2}$这将打开一个python或ipythonshell,您可以在其中访问当前环境。在
安德烈干杯
您不能使用任意按键,但是要处理正常的中断(例如control-C)而不出错,您只需要捕获它引起的
KeyboardInterrupt
异常,也就是说,只需用要将控制权“带回”交互式提示,脚本必须使用
-i
(对于“交互式”)运行,否则必须使用更高级的交互式Python shell(如ipython)。在相关问题 更多 >
编程相关推荐