Python编辑器中的单元模式

时间:2011-07-16 20:19:54

标签: python matlab ide

在最近的MATLAB版本中,可以使用%%Ctrl-Enter开头的两行之间执行代码区域。这样的区域称为code cell,它允许快速的代码测试和调试。

E.g。

%% This is the beginning of the 1st cell

a = 5;    

%% This is the end of the 1st cell and beginning of the 2nd cell

% This is just a comment
b = 6;

%% This is the end of the 2nd cell

是否有支持类似功能的python编辑器?

编辑:我刚发现Spyderlib支持“阻止”执行(代码区域用空行分隔)和F9,但正如this thread所提到的,此功能是仍然不是很强大(特别是与循环相结合)。

6 个答案:

答案 0 :(得分:7)

Python的交互式编辑器IEP有一个 Matlab样式的单元格符号来标记代码段(通过以'##'开头的行),默认情况下也是快捷方式控制 + 输入

## Cell one
"""
A cell is everything between two commands starting with '##'
"""
a = 3
b = 4
print('The answer is ' + str(a+b))

## Cell two

print('Hello World')

答案 1 :(得分:1)

Pyscripter支持块执行。但它只是胜利。并且它仅限于选择代码块 - >运行它(Ctrl + F7)。没有细胞的概念。

答案 2 :(得分:1)

使用IdleX的IDLE使用SubCodes支持类似Matlab和Sage的单元格。可以使用Ctrl + Return执行“##”标记之间的代码。它还允许缩进标记,以便可以执行缩进代码。

答案 3 :(得分:1)

我编写了一个vim插件,其中单元格由##分隔。它将单元格发送到在tmux中运行的ipython解释器。您可以定义键映射以执行当前单元格,执行当前单元格并移动到下一个或执行当前行:

https://github.com/julienr/vim-cellmode

我最近开始为Intellij PyCharm开发一个类似的插件。它可以将单元格发送到内部python控制台(它有一些问题)或者运行在tmux中的ipython解释器:

https://github.com/julienr/pycharm-cellmode

答案 4 :(得分:0)

Sage提供类似的东西。它应该是Matlab的python替代品,你应该看看。

在一个sage笔记本中,你可以在与matlab单元非常相似的块中编写python命令。

答案 5 :(得分:0)

Spyder3和PyCharm:#%%或#%%

Spyder3: Ctrl + Enter :运行当前单元格, Shift + Enter :运行当前单元格并前进。

PyCharm: Ctrl + Enter :运行并前进

# %%

print('You are in cell 1')

# %%

print('You are in cell 2')
# %% 

print('You are in cell 3')

enter image description here