Режим ячейки в редакторах Python
В последних версиях MATLAB можно выполнить область кода между двумя строками, начиная с %%
, используя Ctrl-Enter
. Такая область называется ячейкой кода, что позволяет быстро тестировать и отлаживать код.
например.
%% 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, которые поддерживают подобную функцию?
EDIT: Я только что обнаружил, что Spyderlib поддерживает выполнение "блока" (регионы кода, разделенные пробелом строки) с F9, но, как упоминает этот поток, эта функция по-прежнему не очень надежна (в частности, в сочетании с циклами).
Ответы
Ответ 1
Интерактивный редактор для Python IEP имеет нотацию ячейки в стиле Matlab для обозначения разделов кода (путем запуска строки с помощью # ## '), а ярлык по умолчанию также Ctrl + Enter:
## 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')
Ответ 2
Spyder3 определяет ячейку как весь код между строками, начинающимися с #%%
.
Запустите ячейку с помощью Ctrl + Enter или запустите ячейку и продвигайтесь с помощью Shift + Enter.
Ответ 3
Pyscripter поддерживает выполнение блока. Но это только победа. И это ограничивается выбором блока кода → запускать его (Ctrl + F7). Нет понятия клеток.
Ответ 4
IDLE с IdleX поддерживает Matlab-подобные и Sage-подобные ячейки, используя SubCodes. Код между маркерами "##" может быть выполнен с помощью Ctrl + Return. Он также позволяет отступать маркеры, чтобы можно было выполнить отступы.
Ответ 5
Я написал vim-плагин, в котором ячейки разделены символом ##. Он отправляет ячейки в интерпретатор ipython, работающий в tmux. Вы можете определить сопоставления клавиш для выполнения текущей ячейки, выполнить текущую ячейку и перейти к следующей или выполнить текущую строку:
https://github.com/julienr/vim-cellmode
Недавно я начал работать над подобным плагином для Intellij PyCharm. Он может отправить ячейку либо на внутреннюю консоль python (которая имеет некоторые проблемы с графиками), либо на интерпретатор ipython, работающий в tmux:
https://github.com/julienr/pycharm-cellmode
Ответ 6
Существует Sage, который предлагает что-то вроде этого. Предполагается, что это альтернатива Python для Matlab, вы должны взглянуть.
В записной книжке sage вы пишете команды python в блоках, которые очень похожи на ячейку Matlab.