#python #visual-studio-code #rstudio #jupyter
Вопрос:
У меня возникли некоторые проблемы с перемещением многострочных фрагментов кода из сценария .py в интерактивную панель python в VS code. Для справки, я перехожу от использования Rstudio в качестве IDE и хотел бы получить такое же взаимодействие между сценариями и консолями, к которому я привык оттуда.
Например, если бы я попытался запустить следующие строки из сценария .py:
def f(a):
print(a)
Я могу запустить def f(a):
строку, но вместо того, чтобы ждать запуска print(a)
строки, интерактивная панель пытается запустить первую строку, что приводит к:
IndentationError: expected an indented block (2416368674.py, line 1)
Я могу нормально запускать многострочные фрагменты, если выделю весь фрагмент и перенесу его на интерактивную панель.
Как правило, я просто хочу иметь возможность запускать многострочные блоки, функции и т. Д. строка за строкой с интерактивной панелью, знающей, что нужно подождать, если она должна ожидать большего количества кода. Я не хочу работать с упаковкой кода в ячейку. Есть ли способ это исправить?
Комментарии:
1. Ошибка говорит, что ваш отступ неверен,,, Это было бы первое место, с которого я бы начал. Python очень придирчив к отступам.
2. Я думаю, что отступ здесь не проблема, а то, что интерактивная панель просто выполняется
def f(a):
перед запуском следующей строки, где на самом деле происходит отступ. Если я выделю весь оператор функции и запущу его, он будет работать нормально без ошибок отступа.
Ответ №1:
Я боюсь, что вы не можете этого сделать, это неразумно.
Независимо от того, отправляете ли вы коды на интерактивную панель или в REPL в терминале, он автоматически запустит коды-с Enter
помощью нажатия.
Вы хотите, чтобы он не Enter
нажимал автоматически и ждал, пока вы нажмете его самостоятельно, или он может быть достаточно умен, чтобы знать, когда следует продолжать ждать следующих кодов.
Но почему бы не отправить фрагмент кода напрямую, а не строка за строкой, и не нажимать Enter
автоматически, вместо Enter
того чтобы каждый раз нажимать вручную?