如何退出正在运行的Python程序到Python提示符?

2024-05-14 23:14:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了康威人生游戏的一个实现。我设置了两种模式,一种是自动模式,另一种是手动模式,我的意思是输出游戏结果的方式。对于自动模式,如果没有ctrl+qctrl+c(打印出错误消息),我无法停止正在运行的程序。那么,有没有什么方法可以让我停止运行的程序,并通过按我自己定义的某个键返回python >>>提示符,比如,ctrl+k。谢谢您。在


Tags: 方法程序游戏消息定义错误方式模式
3条回答

您是从一个iteractive提示符运行它,然后只想返回到提示符。或者,您是在shell中运行它,并希望在中获得python提示符,但要知道程序执行的当前状态?在

对于后面的代码,您可以在代码中出现键盘中断异常,然后中断到python调试器(pdb)。在

import pdb
try:
    mainProgramLoop()
except (KeyboardInterrupt, SystemExit):
    pdb.set_trace()

如果您能够截获按键引发的事件并调用特定函数,则可以执行以下操作:

def prompt():
  import code
  code.interact(local=locals())

或者如果您使用IPython:

^{pr2}$

这将打开一个python或ipythonshell,您可以在其中访问当前环境。在

安德烈干杯

您不能使用任意按键,但是要处理正常的中断(例如control-C)而不出错,您只需要捕获它引起的KeyboardInterrupt异常,也就是说,只需用

try:
    functionthatloopsalot()
except KeyboardInterrupt:
    """user wants control back"""

要将控制权“带回”交互式提示,脚本必须使用-i(对于“交互式”)运行,否则必须使用更高级的交互式Python shell(如ipython)。在

相关问题 更多 >

    热门问题