Хитрые приёмы на Python

приёмы

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

Перечисление

Вместо этого:

Можно сделать так:

В enumerate можно передавать и второй аргумент. Вот пример:

Абстракция словарей/множеств

С абстракциями списков (list comprehension) вы скорее всего сталкивались, но вот с абстракциями словарей/множеств (dict/set comprehension) — вряд ли. Они просты в использовании и так же эффективны. Вот пример:

Деление с плавающей запятой

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

Но у этой проблемы есть и другое решение:

Вуаля! И не нужно дописывать .0. Стоит отметить, что этот приём относится только к Python 2 — в третьей версии языка всё работает как нужно по умолчанию.

Простой сервер

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

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

Вычисление выражений Python

Вы наверняка знакомы с eval, но знаете ли вы о literal_eval? Вряд ли. Для безопасного исполнения выражений, содержащих исключительно литералы, вы можете делать так:

А не так:

Между прочим, эта фича находится в языке уже давно.

Профилирование скрипта

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

Интроспекция объектов

Вы можете изучать объекты Python при помощи команды dir(). Простой пример:

Отладочные скрипты

Вы можете задавать точки останова (breakpoint) при помощи модуля pdb:

Чтобы задать точку останова в любом месте скрипта, напишите там команду pdb.set_trace(). В pdb есть ещё несколько интересных штучек, описанных в документации.

Упрощение конструкций с if

Если вам нужно проверить несколько значений, сделайте так:

А не так:

Разворачивание списка/строки

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

То же самое можно сделать и со строкой:

Красивый вывод

Вы можете красиво выводить на экран словари и списки вот так:

Нагляднее это, конечно, при работе со словарями. Кроме того, так же можно выводить информацию из JSON-файлов:

Тернарный оператор

Тернарный оператор — это сокращённая форма записи условного выражения if-else. Вот пример использования:

Если вы знаете другие полезные приёмы, делитесь ими в комментариях!

Перевод статьи «Nifty Python tricks»