当前位置: 首页 > 面试题库 >

如何逐步处理Python代码以帮助调试问题?

伊温书
2023-03-14
问题内容

在Java / C#中,您可以轻松地逐步执行代码以查找可能出了问题的地方,而IDE使此过程非常人性化。

您能以类似的方式跟踪python代码吗?


问题答案:

是! 有一个Python调试器pdb就是为了这样做!

你可以pdb使用pdb myscript.py或通过启动Python程序python -m pdb myscript.py

你可以执行一些命令,这些命令已在pdb页面中记录。

需要记住的一些有用的是:

  • b:设置一个断点
  • c:继续调试,直到遇到断点
  • s:单步执行代码
  • n:转到下一行代码
  • l:列出当前文件的源代码(默认值:11行,包括正在执行的行)
  • u:浏览堆栈框架
  • d:向下浏览堆栈框架
  • p:在当前上下文中打印表达式的值

如果你不想使用命令行调试器,则某些IDE(例如Pydev,Wing IDE或PyCharm)都具有GUI调试器。Wing和PyCharm是商业产品,但是Wing具有免费的“个人”版本,而PyCharm具有免费的社区版本。



 类似资料:
  • 问题内容: 我有一个注释处理器,用于保留策略= SOURCE的注释。 我不知道如何逐步调试它。 运行mvn install,编译或打包或ant javac时,我已发布了打印语句,记录器信息,并且在编译日志中看到了它们的sysout。 但是,我不知道如何在Eclipse中逐步调试处理器。我的意思是,您如何逐步调试编译时? 问题答案: 您必须使用调试配置从Eclipse调用Java编译器(您需要从“调

  • 问题内容: 我只是将eclipse放在笔记本电脑上,当我使用Step Into调试工具时,它不仅使我进入了代码的下一部分。一个例子是,如果我调用数组列表,它将带我进入数组列表类,并通过所有必需的代码进入 但是,在我的桌面上,它只会带我进入下一段代码。我做: 如果我单击该按钮(从我的桌面进入),则 hello world 将出现在控制台中。 相比之下,如果我在笔记本电脑上“步入” ,它将首先拉起Pr

  • 问题内容: 这旨在作为一个通用问题,以帮助遇到程序问题但不知道如何使用调试器诊断问题原因的新程序员。 该问题涵盖三类更具体的问题: 当我运行程序时,它不会产生我期望输入的输出。 当我运行程序时,它崩溃并给了我堆栈跟踪。我已经检查了堆栈跟踪,但是我仍然不知道问题的原因,因为* 堆栈跟踪没有为我提供足够的信息。 当我运行程序时,它由于分段错误(SEGV)而崩溃。 问题答案: 调试器是可以在程序运行时检

  • 问题内容: 我在Python内的多处理方面breaking之以鼻,但我没有运气将话题缠住。基本上,我有一个过程很耗时。我需要将其运行在1到100的范围内,但是一旦满足我要寻找的条件,我想中止所有进程。条件是返回值== 90。 这是一个非多进程代码块。谁能给我一个例子,说明如何将其转换为多进程函数,一旦满足“ 90”的条件,代码将退出所有进程? 编辑: 测试第3版时出现此错误。知道是什么原因造成的吗

  • 我有一些图像只包含数字和分号。 您可以在这里看到更多:https://imgur.com/a/54dsl6h 它们在我看来非常干净和简单,但Tesseract认为它们是空的“页面”()。 我怎么做才能让Tesseract更好地识别角色?

  • 我正在使用minimax算法为connect four编写AI。为了增加深度,我正在使用alpha-beta修剪。然而,我的代码得到了错误的结果。我很难找出哪里出了问题。