Язык программирования Python

Курс IT-Академии Сухорукова

Апрель-июнь 2020

Этот курс закончился

Интерактивный режим интерпретатора

Интерпретатор Python можно использовать в режиме REPL (Read-Execute-Print Loop). Это позволяет производить вычисления, проверять какие-то идеи и концепции, а так же отлаживать программы и пользоваться встроенной интерактивной справкой без использования текстового редактора или иных инструментов.

Чаще всего на практике этот режим используется в качестве продвинутого калькулятора.

Запуск интерпретатора в интерактивном режиме

Запустить интерпретатор в интерактивном режиме можно несколькими способами.

  1. В терминале вашей операционной системы командой python (в Windows) или python3 (в Linux и macOS). При запуске без указания выполняемого файла скрипта интерпретатор сразу же переходит в режим REPL.
  2. Если у вас установлены альтернативные оболочки для Python, можно запустить их из меню операционной системы либо командой в Терминале. Пример такой оболочки — ipython.
  3. Можно просто воспользоваться средой разработки IDLE. Сразу после запуска IDLE появляется окно оболочки Python (Python Shell), в котором интерпретатор работает в интерактивном режиме.

Работа в интерактивном режиме

При работе в интерактивном режиме интерпретатор может находиться в двух состояниях.

  1. В состоянии ожидания команды интерпретатор ничего не делает, только ждёт, пока пользователь введёт нужные инструкции и нажмёт Enter.
  2. После этого интерпретатор переходит в состояние выполнения команды. В это время ничего вводить нельзя (разве что команда запросит какие-то данные), а интерпретатор занят выполнением команд, которые пользователь ввёл на предыдущем шаге.

Различить состояния просто: в состоянии ожидания интерпретатор показывает так называемое приглашение в начале строки. Оно выглядит так:

>>> _

Три угловые скобки. Если вы их видите, знайте: интерпретатор вас внимательно слушает. Оболочки вроде iPython выводят другое приглашение:

[1]: _

Цифра в квадратных скобках — порядковый номер команды. Если ввести какой-то текст сейчас и нажать Enter, интерпретатор попытается выполнить этот текст как программу на Python и выведет результат выполнения, либо сообщение об ошибке, если случилась ошибка.

Если ввести команду не полностью, например, поставить открывающую скобку (, но не поставить закрывающую ), после чего нажать Enter, интерпретатор поймёт, что пользователь ещё не закончил свою команду, и предложит продолжить ввод, показывая другое приглашение:

... _

Соответственно, если вы нажали Enter, а команда не выполнилась, и вместо этого на экране появилось троеточие, значит, вы пропустили закрывающую скобку.

В любой момент можно прервать ввод, нажав сочетание клавиш Ctrl+C. Это вызовет ошибку KeyboardInterrupt, которая прервёт любые действия интерпретатора, заставит его забыть, что вы начинали вводить, и вернёт его снова к состоянию ожидания команды.

Если вам нужно выполнить команду повторно, или исправить опечатку в предыдущей команде, можно воспользоваться историей команд. В Терминале команды перелистываются нажатиями клавиш «Стрелка вверх» () и «Стрелка вниз» (). В IDLE же — клавишами Alt+P (назад по истории) и Alt+N (вперёд). В IDLE на macOS сочетания клавиш иные: Control+P и Control+N.

Выход из интерактивного режима

Чтобы выйти из интерактивного режима и завершить работу интерпретатора, нужно сделать следующее:

  • при работе в IDLE просто закройте все окна IDLE
  • при работе в Терминале нажмите Ctrl+D (в Linux и macOS) или Ctrl+Z (в Windows), либо введите команду exit() (да-да, это функция, круглые скобки тоже нужно ввести) и нажмите Enter.