Шаг 3. Использование интерактивного окна REPL
Предыдущий шаг: написание и запуск кода
Интерактивное окно Visual Studio для Python обеспечивает широкий цикл чтения и оценки печати (REPL), который значительно сокращает обычный цикл редактирования и отладки. Интерактивное окно предоставляет все возможности интерфейса REPL командной строки Python. Оно также упрощает обмен кодом с помощью исходных файлов в редакторе Visual Studio, что довольно затруднительно сделать с помощью командной строки.
Примечание.
Для решения проблем с REPL обязательно установите пакеты ipython
и ipykernel
. Сведения об установке пакетов см. в статье Справочная информация по вкладкам окна "Окружения Python".
Откройте интерактивное окно, щелкнув правой кнопкой мыши среду Python проекта в Обозреватель решений (например, Python 3.6 (32-разрядная версия) и выбрав "Открыть интерактивное окно". Также можно выбрать в главном меню Visual Studio Вид>Другие окна>Интерактивные окна Python.
Интерактивное окно открывается под редактором со стандартным >>> запросом Python REPL. С помощью раскрывающегося списка Окружения можно выбрать определенный интерпретатор для работы. Если вы хотите сделать интерактивное окно более большим, можно перетащить разделитель между двумя окнами, как показано на рисунке ниже:
Совет
Размеры любых окон в Visual Studio можно изменять, перетаскивая граничные разделители. Вы также можете перетаскивать окна за пределы окна Visual Studio и изменять их расположение внутри этого окна, как вам нравится. Подробные сведения см. в статье Настройка макетов окон.
Введите несколько операторов, например
print("Hello, Visual Studio")
, и выражений, например123/456
, чтобы сразу увидеть результаты:При написании многострочный оператор (например, определение функции) в интерактивном окне отображается запрос Python ... для продолжения строк. В отличие от командной строки REPL, она выставляет автоматический отступ. Можно добавить новую строку с …, нажав
Shift+Enter
:Интерактивное окно предоставляет полную историю всех введенных элементов и улучшает rePL командной строки с элементами журнала с несколькими строками. Например, вместо того чтобы повторно создавать функцию по одной строке, можно просто восстановить все определение функции
f
как единое целое и изменить имя наmake_double
.Visual Studio может отправлять несколько строк кода из окна редактора в интерактивное окно. Эта возможность позволяет поддерживать код в исходном файле и легко отправлять выбранные фрагменты в интерактивное окно. После этого с такими фрагментами кода можно работать в удобной среде REPL вместо того, чтобы выполнять всю программу. Чтобы увидеть, как работает эта функция, замените цикл
for
в файле PythonApplication1.py следующим кодом:# Create a string with spaces proportional to a cosine of x in degrees def make_dot_string(x): return ' ' * int(20 * cos(radians(x)) + 20) + 'o'
Выберите операторы функций
import
,from
иmake_dot_string
в файле .py. Щелкните правой кнопкой мыши выделенный текст и выберите Отправить код в интерактивное окно (или нажмите клавиши Ctrl+ВВОД). Фрагмент кода сразу же вставляется в интерактивное окно и запускается. Так как код определил функцию, можно быстро проверить эту функцию, вызвав ее несколько раз:Совет
При нажатии клавиш CTRL+ВВОД в редакторе без выделения выполняется текущая строка кода в интерактивном окне и автоматически помещает курсор в следующую строку. Это позволяет легко выполнять код в пошаговом режиме, многократно нажимая клавиши CTRL+ВВОД, что невозможно при использовании командной строки Python. Таким образом также возможно пошаговое выполнение кода без запуска отладчика, в том числе не с самого начала программы.
Вы также можете скопировать и вставить несколько строк кода в интерактивное окно из любого источника, например фрагмент кода ниже, что сложно сделать с помощью командной строки Python REPL. При вставке интерактивное окно запускает этот код, как если бы вы ввели его в:
for i in range(360): s = make_dot_string(i) print(s)
Как можно заметить, код работает, но его выходные данные далеки от совершенства. Другое значение шага в цикле
for
сделает косинусоиду более наглядной. Весь цикл "for" доступен в журнале REPL одним целым. Можно вернуться и внести любые необходимые изменения, а затем снова протестировать функцию. Сначала восстановите циклfor
, нажав клавишу со стрелкой вверх. Чтобы перемещаться по коду, нажимайте клавиши со стрелками влево и вправо (пока вы не сделаете это, при нажатии клавиш со стрелками вверх и вниз будет происходить переход по журналу). Перейдите к спецификацииrange
и измените ее наrange(0, 360, 12)
. Затем нажмите клавиши CTRL+ВВОД в любом месте кода, чтобы снова выполнить весь оператор:Повторяйте эту процедуру, пробуя различные значения шага, пока не найдете оптимальное. Можно также сделать так, чтобы волна повторялась, увеличив диапазон, например
range(0, 1800, 12)
.Когда вы удовлетворены кодом, написанным в интерактивном окне, выберите его. Затем щелкните код правой кнопкой мыши и выберите Скопировать код (Ctrl+Shift+C). Наконец, вставьте выбранный код в редактор. Обратите внимание на то, что при использовании этой возможности в Visual Studio автоматически пропускаются выходные данные, а также подсказки
>>>
и...
. Например, на приведенном ниже рисунке показано использование команды Копировать код применительно к выделенному фрагменту, включающему приглашения и выходные данные:При вставке в редакторе остается только код:
for i in range(0, 1800, 12): s = make_dot_string(i) print(s)
Если вы хотите скопировать точное содержимое интерактивного окна, включая запросы и выходные данные, используйте стандартную команду Copy .
То, что вы сделали, использует быструю среду REPL интерактивного окна для разработки сведений для небольшого фрагмента кода, а затем удобно добавить этот код в исходный файл проекта. Если снова выполнить этот код с помощью клавиш CTRL+F5 (или команды Отладка>Начать без отладки), отобразятся требуемые результаты.
Следующий шаг
Дополнительные подробности
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по