Интерактивный режим интерпретатора
Интерпретатор Python можно использовать в режиме REPL (Read-Execute-Print Loop). Это позволяет производить вычисления, проверять какие-то идеи и концепции, а так же отлаживать программы и пользоваться встроенной интерактивной справкой без использования текстового редактора или иных инструментов.
Чаще всего на практике этот режим используется в качестве продвинутого калькулятора.
Запуск интерпретатора в интерактивном режиме
Запустить интерпретатор в интерактивном режиме можно несколькими способами.
- В терминале вашей операционной системы командой
python
(в Windows) илиpython3
(в Linux и macOS). При запуске без указания выполняемого файла скрипта интерпретатор сразу же переходит в режим REPL. - Если у вас установлены альтернативные оболочки для Python, можно запустить их из меню операционной системы либо командой в Терминале. Пример такой оболочки —
ipython
. - Можно просто воспользоваться средой разработки IDLE. Сразу после запуска IDLE появляется окно оболочки Python (Python Shell), в котором интерпретатор работает в интерактивном режиме.
Работа в интерактивном режиме
При работе в интерактивном режиме интерпретатор может находиться в двух состояниях.
- В состоянии ожидания команды интерпретатор ничего не делает, только ждёт, пока пользователь введёт нужные инструкции и нажмёт
Enter
. - После этого интерпретатор переходит в состояние выполнения команды. В это время ничего вводить нельзя (разве что команда запросит какие-то данные), а интерпретатор занят выполнением команд, которые пользователь ввёл на предыдущем шаге.
Различить состояния просто: в состоянии ожидания интерпретатор показывает так называемое приглашение в начале строки. Оно выглядит так:
>>> _
Три угловые скобки. Если вы их видите, знайте: интерпретатор вас внимательно слушает. Оболочки вроде 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
.