我想使用vscode和jupyter进行交互式python编程。一切工作都发现,只是只有在单元格/块不缩进或代码未缩进时才能识别它们。以前,在可能的情况下,我使用了spyder。
我喜欢这种行为,因为当您具有较长的类或函数定义(缩进的)但只想交互式地从类/函数运行几行时,它对于调试和开发很有用。
我尝试了官方的python扩展名和Don Jayamanne juypter扩展名。没有人允许期望的行为。
更新:我刚刚发现不同的python版本在这方面的行为有所不同。使用python 3.6.6和3.7.2时,缩进会引发错误,而使用python 3.6.7或3.6.8时,缩进将被忽略并执行单元格。有没有解释为什么不同版本的行为不同或显式设置来处理此问题?
#%%
print('This works')
#%%
print('This does not work, as it raises an indent error')
print('Update: This works in python version 3.6.7 or 3.6.8')
#%%
print('This does not work, as it is not recognized as a cell/block')
答案 0 :(得分:0)
Python使用空格缩进而不是大括号或关键字来分隔块。 VSC Jupyter Extension的创建者似乎并没有全力以赴地解决此问题。
一种技巧是在单元格的开头添加一个真if语句,如下所示:
#%%
if 1: # indent for emphasis
print('This works')