9 Трюки с Python REPL

9 Трюки с Python REPL

Разумеется, в Pi в Raspberry Pi происходит от Python, одного из самых популярных языков программирования в мире и особенно популярного среди тех, кто занимается разработкой и созданием. В этой статье я хочу рассказать вам о 9 трюках и советах по работе с Python REPL - но не волнуйтесь, если вы не очень хорошо знакомы с Python или REPL.

Эта заметка предназначена как для начинающих, так и для опытных программистов на Python.

Что такое REPL?

REPL, или Read-Evaluate-Print Loop, - это способ прямого взаимодействия с интерпретатором Python. Он называется REPL, поскольку считывает, оценивает и печатает вводимые данные, а затем возвращается к началу цикла, позволяя ввести другую команду.

Он предоставляет интерфейс через оболочку Python Shell для ввода кода и немедленного получения результата. Это позволяет проверять код, отлаживать его в режиме реального времени и создавать интерактивные тесты. Как правило, вы поймете, что имеете дело с Python REPL, как только увидите эти три стрелки:

>>>

Здесь вы можете разместить свои данные.

Следует отметить, что

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

Помимо стандартных оболочек Python и Python3 Shells, многие используют IPython и bpython - программы командной строки, обладающие уникальными возможностями, такими как подсветка синтаксиса.

Python REPL

Видно, что IPython и bpython по умолчанию выглядят красивее (ниже мы рассмотрим, как сделать красивее и стандартный REPL).

Стоит также отметить, что REPL в IPython нумерует строки ввода "In [1]", "In [2]" и т.д.

В отличие от IPython, в bpython сохраняется разметка >>>.

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

Это делает REPL бесценным инструментом для всех, кто хочет повозиться с Raspberry Pi.

Теперь, когда вы знаете, что такое REPL, давайте рассмотрим некоторые приемы его использования:

Прием 1: Найти документацию

Вы можете найти документацию по любому объекту или модулю Python непосредственно из REPL, используя команду help() функция.

Например, набрав help(str) выведет документацию по строковому объекту. Вы также можете добавить имя метода или функции для получения подробной информации, например

 help(str.upper)

Если ввести этот текст, то появится следующее сообщение:

Поиск документации в Python REPL

Хитрость 2: Используйте завершение вкладки

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

Например, если набрать int. а затем нажмите Tab, вы увидите список методов для работы с целыми числами.

Завершение вкладки Python REPL

Прием 3: Создание многострочных высказываний

Кроме того, REPL позволяет писать многострочные операторы с использованием продолжения строки.

Если необходимо разбить оператор на несколько строк для удобства чтения, можно использовать символ обратной косой черты (\) в конце каждой строки для продолжения ее на следующую строку (см. пример 1 ниже).

Вы также можете заключить высказывание в круглые скобки или скобки для продолжения его на следующую строку (см. пример 2 ниже).

# example 1: using backslash for a multi-line statement

name = 'Fatima'
age = 46
country = 'Germany'

message = 'Hi, ' + \
          name + \
          '! You are ' + \
          str(age) + \
          ' years old and from ' + \
          country + '.'

print(message)

# the message will be 'Hi, Fatima! You are 46 years old and from Germany.'

# example 2: using parentheses for a multi-line statement

total = (1 + 2 + 3 +
         4 + 5 + 6 +
         7 + 8 + 9)

print("The total is:", total)

# the message will be 'The total is: 45'

Прием 4: Доступ к ранее набранному коду

Доступ к ранее набранному коду в REPL осуществляется с помощью клавиш со стрелками вверх и вниз, как и в терминале.

Нажатие клавиши со стрелкой вверх приводит к циклическому просмотру истории команд, позволяя быстро вызывать и изменять предыдущие команды. Проверьте это сами!

Прием 5: Использование переменной Underscore

Переменная с подчеркиванием (_) содержит результат последнего выражения, вычисленного в REPL.

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

Переменная подчеркивания в Python REPL

Трюк 6: Выполнение системных и магических команд (IPython)

В IPython (сокращение от "Interactive Python") можно выполнять системные команды напрямую, предваряя строку кода восклицательным знаком (!).

Вместе с IPython'ом магические команды, like %cd to change directory, you’re able to use the Python REPL for seamless integration!

Например, !ls в системах на базе Unix или !dir в Windows выведет список содержимого текущего каталога.

Магические команды Python REPL

Прием 7: Экспериментируйте с импортом

В Python REPL можно экспериментировать с импортом без необходимости создавать отдельные Python-файлы. Эта возможность позволяет импортировать модули, опробовать их функции и изучить их содержимое в интерактивном режиме, что удобно для быстрого экспериментирования и изучения различных модулей и их возможностей.

Вот как можно использовать Python REPL для экспериментов с импортом:

>>> import math
>>> math.sqrt(16)
4.0

В данном примере мы используем sqrt() функция из math модуль для вычисления квадратного корня из 16.

Использование Python REPL для экспериментов с импортом позволяет быстро тестировать и исследовать функциональность различных модулей без необходимости создания отдельных Python-файлов.

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

Прием 8: Настройте строку REPL

Не нравится >>> в качестве основного приглашения и ... в качестве вторичного?

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

Путем модификации sys.ps1 и sys.ps2 переменных можно изменить первичные и вторичные подсказки соответственно.

Просто бегите:

import sys

sys.ps1 = 'primary'
sys.ps2 = 'secondary'

Теперь первичная подсказка будет "primary", а вторичная - "secondary". Не стесняйтесь изменять его по своему усмотрению! Попробуйте, например, использовать символы или emojis!

При таком способе работы подсказки будут действовать только в текущем сеансе работы с REPL. Если вы хотите сделать что-то более постоянное, то вам нужно найти файл ".pyrc" и отредактировать в нем подсказки.

Помните мои скучные, уродливые суфлеры в REPL? Давайте изменим цвет.

Если вы используете Linux, то в терминале можно ввести следующее:

tee ~/.pyrc <<E0F
import sys
sys.ps1='\x01\x1b[1;34;40m\x02>>>\x01\x1b[0m\x02'
sys.ps2='\x01\x1b[1;35;40m\x02...\x01\x1b[0m\x02'
E0F

Это изменит цвет первичной подсказки на синий на сером и вторичной подсказки на фиолетовый на сером, если вам это нужно. Не стесняйтесь экспериментировать со всеми вариантами Цветовые последовательности ANSI чтобы подобрать цвет суфлера, который вас устраивает.

После этого обязательно выполните экспорт:

export PYTHONSTARTUP=~/.pyrc

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

Python REPL customize prompt

Опять же, это временное решение. Если вы хотите изменить что-то навсегда, вам придется изменить конфигурационный файл. Но это дает вам представление о том, что можно сделать!

Прием 9: Изучение модулей и объектов

Если вы хотите дополнить поиск документации и использовать завершение вкладок, то этот прием является завершающим!

Изучить содержимое модуля (или объекта) можно с помощью функции dir() функция.

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

Например:

import math
print (dir(math))

В результате будет выведен список доступных атрибутов, методов и функций модуля math.

Python REPL исследует модули и объекты

Именно такие приемы могут помочь сделать рабочий процесс бесперебойным.

Как только вы освоите эти 9 приемов, вы сможете использовать REPL более эффективно.

Это позволит значительно упростить отладку и тестирование кода.

Сообщите нам в комментариях ниже, какие приемы работы с REPL вы знаете!

Комментировать