所以我运行一个Python脚本,在其中我通过编写调用Python的调试器PDB:
import ipdb; ipdb.set_trace()
(iPython的PDB版本,尽管我认为它没有什么区别;我只在彩色输出中使用它)。
现在,当我进入调试器时,我想执行一个多行语句,如if子句或for循环,但只要我键入
if condition:
然后按回车键,我得到错误消息*** SyntaxError: invalid syntax (<stdin>, line 1)
如何在PDB中执行多行语句?如果不可能,有没有办法仍然执行if子句或for循环?
7条答案
按热度按时间093gszye1#
您可以在PDB中执行此操作,以使用所有可用的局部变量启动临时交互式Python会话:
完成后,使用Ctrl-D返回到常规的pdb提示符。
只是不要按Ctrl-C,这将终止整个PDB会话。
9cbw7uwe2#
在python3中,
ipdb
(和pdb
)有一个名为interact的命令。它可以用来:启动一个交互式解释器(使用代码模块),其全局名称空间包含在当前作用域中找到的所有(全局和局部)名称。
要使用它,只需在PDB提示符下输入
interact
。除此之外,它对于应用跨多行的代码很有用,也可以避免意外触发其他PDB命令。k5ifujac3#
我的建议是使用IPython嵌入。
de90aj5v4#
在Python(2.7.1)解释器或调试器(import pdb)中,可以使用以下语法执行多行语句。
注意事项:当我在解释器中时,我必须在代码执行之前按两次回车键,然而在调试器中,我只需要按一次回车键。
zf9nrax15#
如果你想在遇到断点时执行几个命令,这是一种特殊情况。然后是调试器命令
commands
。它允许你输入多行命令,然后用end
关键字结束整个序列。更多的是(pdb) help commands
。balp4ylt6#
我不知道你是否能做到这一点,但这将是ipdb的一个很好的功能。当然,你可以使用列表解析,并执行简单的多行表达式,如:
你也可以预先编写一些函数来完成你需要完成的事情,这些事情通常需要多行代码。
lh80um4z7#
这将为所有列和所有行的数组框架做这件事。
我认为这是最好的SQL
这是使用JSON的另一种方式,但将项目转换为字符串
现在我可以写我的sqlite3数据库没有错误。这里的一些代码假设你有框架df。