Как сделать отступ в ячейках / блоках jupyter против кода - PullRequest
0 голосов
/ 17 января 2019

Я хочу использовать vscode и jupyter для интерактивного программирования на python. Все работает, за исключением того, что ячейки / блоки распознаются только тогда, когда они не имеют отступ или если код не имеет отступ. Ранее я использовал spyder там, где это возможно.

Мне нравится это поведение, потому что оно полезно для отладки и разработки, когда у вас есть более длинные определения классов или функций (с отступом), но вы просто хотите запустить пару строк из класса / функции в интерактивном режиме.

Я попробовал официальное расширение Python и расширение Jujpter Don Jayamanne. Никто не позволил желаемое поведение.


Обновление: я только что понял, что разные версии 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 голосов
/ 17 января 2019

В Python для выделения блоков используются отступы от пробелов, а не фигурные скобки или ключевые слова. Не похоже, что создатели VSC Jupyter Extension сделали все возможное, чтобы обойти это.

Один из способов - добавить оператор true в начале ячейки, например:

#%%
if 1:  # indent for emphasis
    print('This works')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...