在最近的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所提到的,此功能是仍然不是很强大(特别是与循环相结合)。
答案 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解释器:
答案 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')