Шаг 3. Использование интерактивного окна REPL

Предыдущий шаг: написание и запуск кода

Интерактивное окно Visual Studio для Python обеспечивает широкий цикл чтения и оценки печати (REPL), который значительно сокращает обычный цикл редактирования и отладки. Интерактивное окно предоставляет все возможности интерфейса REPL командной строки Python. Оно также упрощает обмен кодом с помощью исходных файлов в редакторе Visual Studio, что довольно затруднительно сделать с помощью командной строки.

Примечание.

Для решения проблем с REPL обязательно установите пакеты ipython и ipykernel. Сведения об установке пакетов см. в статье Справочная информация по вкладкам окна "Окружения Python".

  1. Откройте интерактивное окно, щелкнув правой кнопкой мыши среду Python проекта в Обозреватель решений (например, Python 3.6 (32-разрядная версия) и выбрав "Открыть интерактивное окно". Также можно выбрать в главном меню Visual Studio Вид>Другие окна>Интерактивные окна Python.

  2. Интерактивное окно открывается под редактором со стандартным >>> запросом Python REPL. С помощью раскрывающегося списка Окружения можно выбрать определенный интерпретатор для работы. Если вы хотите сделать интерактивное окно более большим, можно перетащить разделитель между двумя окнами, как показано на рисунке ниже:

    Python interactive window and dragging to resize

    Совет

    Размеры любых окон в Visual Studio можно изменять, перетаскивая граничные разделители. Вы также можете перетаскивать окна за пределы окна Visual Studio и изменять их расположение внутри этого окна, как вам нравится. Подробные сведения см. в статье Настройка макетов окон.

  3. Введите несколько операторов, например print("Hello, Visual Studio"), и выражений, например 123/456, чтобы сразу увидеть результаты:

    Python interactive window immediate results

  4. При написании многострочный оператор (например, определение функции) в интерактивном окне отображается запрос Python ... для продолжения строк. В отличие от командной строки REPL, она выставляет автоматический отступ. Можно добавить новую строку с , нажав Shift+Enter:

    Python interactive window with statement continuation

  5. Интерактивное окно предоставляет полную историю всех введенных элементов и улучшает rePL командной строки с элементами журнала с несколькими строками. Например, вместо того чтобы повторно создавать функцию по одной строке, можно просто восстановить все определение функции f как единое целое и изменить имя на make_double.

  6. 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'
    
  7. Выберите операторы функций import, from и make_dot_string в файле .py. Щелкните правой кнопкой мыши выделенный текст и выберите Отправить код в интерактивное окно (или нажмите клавиши Ctrl+ВВОД). Фрагмент кода сразу же вставляется в интерактивное окно и запускается. Так как код определил функцию, можно быстро проверить эту функцию, вызвав ее несколько раз:

    Sending code to the interactive window and testing it

    Совет

    При нажатии клавиш CTRL+ВВОД в редакторе без выделения выполняется текущая строка кода в интерактивном окне и автоматически помещает курсор в следующую строку. Это позволяет легко выполнять код в пошаговом режиме, многократно нажимая клавиши CTRL+ВВОД, что невозможно при использовании командной строки Python. Таким образом также возможно пошаговое выполнение кода без запуска отладчика, в том числе не с самого начала программы.

  8. Вы также можете скопировать и вставить несколько строк кода в интерактивное окно из любого источника, например фрагмент кода ниже, что сложно сделать с помощью командной строки Python REPL. При вставке интерактивное окно запускает этот код, как если бы вы ввели его в:

    for i in range(360):
        s = make_dot_string(i)
        print(s)
    

    Pasting multiple lines of code using Sending Interactive

  9. Как можно заметить, код работает, но его выходные данные далеки от совершенства. Другое значение шага в цикле for сделает косинусоиду более наглядной. Весь цикл "for" доступен в журнале REPL одним целым. Можно вернуться и внести любые необходимые изменения, а затем снова протестировать функцию. Сначала восстановите цикл for, нажав клавишу со стрелкой вверх. Чтобы перемещаться по коду, нажимайте клавиши со стрелками влево и вправо (пока вы не сделаете это, при нажатии клавиш со стрелками вверх и вниз будет происходить переход по журналу). Перейдите к спецификации range и измените ее на range(0, 360, 12). Затем нажмите клавиши CTRL+ВВОД в любом месте кода, чтобы снова выполнить весь оператор:

    Editing a previous statement in the interactive window

  10. Повторяйте эту процедуру, пробуя различные значения шага, пока не найдете оптимальное. Можно также сделать так, чтобы волна повторялась, увеличив диапазон, например range(0, 1800, 12).

  11. Когда вы удовлетворены кодом, написанным в интерактивном окне, выберите его. Затем щелкните код правой кнопкой мыши и выберите Скопировать код (Ctrl+Shift+C). Наконец, вставьте выбранный код в редактор. Обратите внимание на то, что при использовании этой возможности в Visual Studio автоматически пропускаются выходные данные, а также подсказки >>> и .... Например, на приведенном ниже рисунке показано использование команды Копировать код применительно к выделенному фрагменту, включающему приглашения и выходные данные:

    Interactive window copy code command on a selection with prompts and output

    При вставке в редакторе остается только код:

    for i in range(0, 1800, 12):
        s = make_dot_string(i)
        print(s)
    

    Если вы хотите скопировать точное содержимое интерактивного окна, включая запросы и выходные данные, используйте стандартную команду Copy .

  12. То, что вы сделали, использует быструю среду REPL интерактивного окна для разработки сведений для небольшого фрагмента кода, а затем удобно добавить этот код в исходный файл проекта. Если снова выполнить этот код с помощью клавиш CTRL+F5 (или команды Отладка>Начать без отладки), отобразятся требуемые результаты.

Следующий шаг

Дополнительные подробности