如何在 VS Code 中缩进 Jupyter 单元格/块

4
我想使用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')
1个回答

0

Python使用空格缩进来分隔代码块,而不是花括号或关键字。看起来VSC Jupyter扩展程序的创建者并没有特别为此做出努力。

一个解决方法是在你的单元格开头添加一个真正的if语句,像这样:

#%%
if 1:  # indent for emphasis
    print('This works')

1
感谢您的建议。这个方法可以运行,但并没有真正解决我的问题。我经常需要从一个函数中以交互模式运行部分代码进行开发或调试,但又不想改变整个程序的代码。 - hstorm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接