EasyPython🐍
67 subscribers
590 photos
4 links
Примеры и по Python, которые упростят вам жизнь.
Download Telegram
Сила «однострочников» (One-Liners)

Вы устали пробираться между строк кода и теряться в условных конструкциях? Тогда, однострочники Python — это то, что вам нужно
Что нового в Python 3.12. Порядок слов в инструкции импорта

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

До Python 3.12 использовать backslash в интерполируемых строках было нельзя. Теперь же мы смело можем внедрять и разрывы строк (\n), и переносы кареток (\r), и другие подобные символы.
Объединение скриптов Python и Shell

Теперь это то, что вы не можете сделать с C или C ++. Если вы парень с открытым исходным кодом, то вы наверняка используете Linux в качестве основной операционной системы или, по крайней мере, двойную загрузку. Итак, Linux уже включает Python. И python чрезвычайно совместим с Linux. Это дает нам преимущество их компиляции и объединения. Вы можете просто создать сценарий, который может работать как обычный сценарий Unix, а также интерпретируемый код Python одновременно.
Что нового в Python 3.12. Переиспользование кавычек в f-строках

Теперь напрягать внимание, чтобы вложить в строку объект в кавычках, не нужно. Система поймет, где открывающая, а где — закрывающая кавычка, любое количество раз.
Что нового в Python 3.12. Улучшенный подсказки для импорта

Если вы забыли подтянуть библиотеку инструкцией import, то теперь интерпретатор вежливо подскажет (‘did you forget...’) и укажет на опечатки в названии подключаемого модуля.
Защита от SQL-инъекций

Безопасники скажут вам, что: внутрь текста (например, в поле анкеты) можно внедрить SQL-запрос и даже дропнуть базу данных. Но не дай бог нам с вами увидеть такое на проде.

Начиная с Python 3.11 мы можем использовать LiteralString во избежание таких уязвимостей.
Импорт

В версии Python 3.12 наконец стало возможным импортировать модули в адекватном для английского языка порядке слов!
TypeVarTuple

Допустим, мы создаём функцию convert_first_int(), которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу.

TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.
Pretty Print словаря

Выводить многоуровневые словари с print() — боль: разрывы строк исчезнут, файл станет нечитаемым.

Но встроенная утилита pprint, выдаст в командной строке «причёсанный» словарь.
Включение генераторов, сетов

Раньше был эффективный способ генерировать списки — «списковое включение» (List Comprehension).

Оказывается, этому поддаются и другие составные типы — генераторы и сеты.
Оператор match для проверки типа

Теперь освоение новых библиотек у вас точно ускорится.

Порой, трудно понять, какой тип данных возвращает функция или метод. В таких случаях помогают match и встроенные функции приведения к тому или иному типу данных.
Проверка существования переменной с помощью «моржового» оператора

Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора := (Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else.

Во втором случае заполнена только одна из переменных, но программа отработает без ошибки.
try / except + else + finally

Мастхэв для начинающих питонистов — пара try / except, обработчик исключений. Шикарным дополнением к такому блоку является, на мой взгляд, else: он опишет поведение программы на случай других ошибок, которых может быть немало!

Более того, добавив finally, вы выполните завершающие работы, например, скомандуете выслать уведомление
Автоматическое добавление ключа словарю

Если создать словарь средствами collections.defaultdict, добавить хотя бы один элемент, а затем обратиться к несуществующему ключу.
Проверка наличия элемента в множестве

Мы можем проверить, находится ли тот или иной элемент в списке с помощью оператора in.

То же применимо и для множеств (set).
Перегонка кортежа в словарь

Допустим, у нас есть кортеж, где каждое значение – строка из двух символов.

Если «навесить» функцию dict(), то в результате мы получим словарь с разделенными на ключ – значение парами.
Поиск отличий в списках

Допустим, у нас есть две длинные строки, и мы хотим найти отличия. seq1 и seq2 в сниппете ниже – это последовательности генов.

Можно использовать комбинацию zip() и enumerate(). Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (всего 24). Чтобы найти отличающиеся символы, достаточно сравнить символы попарно в цикле for.
JSON-esque

В Python много скрытых вещей. Требуется только человек и его время, чтобы выяснить, что все магические операторы и прочее скрыты внутри. Одним из всех других вещей является знаменитый JSON-esque. Вы можете создавать вложенные словари, не создавая явно словари. Они волшебным образом появляются, когда мы ссылаемся на них.
Подсчёт числа элементов в списке

Помимо способности collections.Counter() понимать, что именно в строке нужно подсчитать.

В случае со списком слов модуль автоматически рассчитывает, как часто встречается то или иное слово.