Как работать с интерактивной консолью Python

Вступление

Интерактивная консоль Python (также называемая интерпретатором Python или оболочкой Python) предоставляет программистам быстрый способ выполнять команды и пробовать или тестировать код без создания файла.

Предоставляя доступ ко всем встроенным функциям Python и всем установленным модулям, истории команд и автозаполнению, интерактивная консоль предлагает возможность изучить Python и возможность вставлять код в программные файлы, когда вы будете готовы.

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

Вход в интерактивную консоль

К интерактивной консоли Python можно получить доступ с любого локального компьютера или сервера с установленным Python.

Команда, которую вы обычно хотите использовать для входа в интерактивную консоль Python для используемой по умолчанию версии Python:

python

Если вы настроилиprogramming environment, вы можете запустить среду и получить доступ к версии Python и модулям, которые вы установили в этой среде, сначала войдя в эту среду:

cd environments
. my_env/bin/activate

Затем введите командуpython:

python

В этом случае версией Python по умолчанию является Python 3.5.2, который отображается в выходных данных, когда мы вводим команду вместе с соответствующим уведомлением об авторских правах и некоторыми командами, которые вы можете ввести для получения дополнительной информации:

OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Основное приглашение для следующей команды состоит из трех знаков «больше» (>>>):

Вы можете настроить таргетинг на конкретные версии Python, добавив номер версии к своей команде без пробелов:

python2.7
OutputPython 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Здесь мы получили вывод, что будет использоваться Python 2.7.12. Если это наша версия Python 2 по умолчанию, мы также могли бы войти в эту интерактивную консоль с помощью командыpython2.

В качестве альтернативы мы можем вызвать версию Python 3 по умолчанию с помощью следующей команды:

python3
OutputPython 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Мы также могли бы вызвать указанную выше интерактивную консоль с помощью командыpython3.5.

Запустив интерактивную консоль Python, мы можем перейти к работе со средой оболочки для Python.

Работа с интерактивной консолью Python

Интерактивный интерпретатор Python принимает синтаксис Python, который вы размещаете после префикса>>>.

Мы можем, например, присвоить значенияvariables:

birth_year = 1868

После того как мы присвоили целочисленное значение1868 переменнойbirth_year, мы нажмем return и получим новую строку с тремя знаками больше в качестве префикса:

birth_year = 1868

Мы можем продолжить присвоение переменных, а затемperform math with operators, чтобы получить результаты вычислений:

>>> birth_year = 1868
>>> death_year = 1921
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>

Как и в случае со скриптом в файле, мы присваивали переменные, вычитали одну переменную из другой и просили консоль распечатать переменную, которая представляет разницу.

Как и в любой форме Python, вы также можете использовать интерактивную консоль в качестве калькулятора:

>>> 203 / 20
10.15
>>>

Здесь мы разделили целое число203 на20 и получили частное от10.15.

Несколько линий

Когда мы пишем код Python, он будет охватывать несколько строк, интерпретатор будет использовать вторичное приглашение для строк продолжения, три точки (...).

Чтобы прервать эти строки продолжения, вам нужно будет дважды нажатьENTER.

Мы можем увидеть, как это выглядит, в следующем коде, который назначает две переменные, а затем используетconditional statement, чтобы определить, что выводить на консоль:

>>> sammy = 'Sammy'
>>> shark = 'Shark'
>>> if len(sammy) > len(shark):
...     print('Sammy codes in Java.')
... else:
...     print('Sammy codes in Python.')
...
Sammy codes in Python.
>>>

В этом случае длины двухstrings равны, поэтому выводится операторelse.
Обратите внимание, что вам нужно будет сохранить соглашение Python об отступах из четырех пробелов, иначе вы получите ошибка:

>>> if len(sammy) > len(shark):
... print('Sammy codes in Java.')
  File "", line 2
    print('Sammy codes in Java.')
        ^
IndentationError: expected an indented block
>>>

Вы можете не только экспериментировать с кодом из нескольких строк в консоли Python, вы также можете импортировать модули.

Импорт модулей

Интерпретатор Python предоставляет вам быстрый способ проверить, доступны ли модули в конкретной среде программирования. Вы можете сделать это с помощью оператораimport:

>>> import matplotlib
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named 'matplotlib'

В приведенном выше случае модульmatplotlib был недоступен в текущей среде программирования.

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

pip install matplotlib
OutputCollecting matplotlib
  Downloading matplotlib-2.0.2-cp35-cp35m-manylinux1_x86_64.whl (14.6MB)
...
Installing collected packages: pyparsing, cycler, python-dateutil, numpy, pytz, matplotlib
Successfully installed cycler-0.10.0 matplotlib-2.0.2 numpy-1.13.0 pyparsing-2.2.0 python-dateutil-2.6.0 pytz-2017.2

Как только модуль matplotlib и его зависимости успешно установлены, вы можете вернуться к интерактивному интерпретатору:

python
import matplotlib

На этом этапе вы не получите сообщение об ошибке и можете использовать установленный модуль в оболочке или в файле.

Выход из интерактивной консоли Python

Есть два основных способа выйти из интерактивной консоли Python: с помощью сочетания клавиш или функции Python.

Сочетание клавишCTRL +D в системах на базе * nix илиCTRL +Z, затем клавишаCTRL в системах Windows прервет вашу консоль и вернет вас в исходную среду терминала:

...
>>> age_at_death = death_year - birth_year
>>> print(age_at_death)
53
>>>
sammy@ubuntu:~/environments$

В качестве альтернативы функция Pythonquit() выйдет из интерактивной консоли, а также вернет вас в исходную среду терминала, в которой вы были ранее:

>>> octopus = 'Ollie'
>>> quit()
sammy@PythonUbuntu:~/environments$

Когда вы используете функциюquit(), она будет отображаться в вашем файле истории, но сочетание клавишCTRL +D не будет записано:

Файл: /home/sammy/.python_history

...
age_at_death = death_year - birth_year
print(age_at_death)
octopus = 'Ollie'
quit()

Выйти из интерпретатора Python можно в любом случае, в зависимости от того, что имеет смысл для вашего рабочего процесса и ваших потребностей в истории.

Доступ к истории

Одна из полезных особенностей интерактивной консоли Python заключается в том, что все ваши команды записываются в файл.python_history в системах на основе * nix, которые вы можете просмотреть в текстовом редакторе, например, в nano:

nano ~/.python_history

После открытия в текстовом редакторе ваш файл истории Python будет выглядеть примерно так, с вашей собственной историей команд Python:

Файл: /home/sammy/.python_history

import pygame
quit()
if 10 > 5:
    print("hello, world")
else:
    print("nope")
sammy = 'Sammy'
shark = 'Shark'
...

Когда вы закончите работу с файлом, вы можете нажатьCTRL +X, чтобы выйти из nano.

Отслеживая всю свою историю Python, вы можете вернуться к предыдущим командам и экспериментам, а также скопировать и вставить или изменить этот код для использования в файлах программирования Python или вJupyter Notebook.

Заключение

Интерактивная консоль Python предоставляет пространство для экспериментов с кодом Python. Вы можете использовать его как инструмент для тестирования, отработки логики и многого другого.

Для использования с отладкой программных файлов Python вы можете использовать модуль Pythoncode, чтобы открыть интерактивный интерпретатор внутри файла, о чем вы можете прочитать в нашем руководствеHow To Debug Python with an Interactive Console.