Senior Python Developer
40.8K subscribers
2.24K photos
6 videos
1 file
560 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

По вопросам сотрудничества: @adv_and_pr

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
Узнаём версию Python

В пакете sys присутствует переменная version_info, которая хранит в себе версию Python, с помощью которого запущена программа.
Перечисления

Перечисление (enumeration) — это набор имён, привязанных к уникальным неизменным значениям. Python поддерживает работу с перечислениями, с их помощью удобно хранить списки констант.

Члены одного перечисления можно сравнивать, а также обходить с помощью циклов. Подробнее о перечислениях можно почитать в документации: https://docs.python.org/3/library/enum.html
Форматирование строк

Вставить переменную в строку можно несколькими способами. Проще всего использовать f-строки, с их помощью можно наглядно вставлять переменные в нужные места в фигурных скобках. Оператор % и метод format уже довольно устарели и использовать в новых проектах их не стоит.
Встроенная функция map

На вход принимает два аргумента — функцию (!) и объект, к элементам которого её надо применить. В примере мы применяем функцию, которая умножает число само на себя, к числам из списка.
Что выведет код?
Anonymous Quiz
9%
-0.0
49%
0.0
20%
0
14%
Ошибка
7%
Не знаю
Комплексные числа

Python преобразует числа в комплексные с помощью функции complex(x, y), получая комплексное число по стандартной формуле x + i * y, где x, y — вещественные числа, а i — мнимая единица (i в квадрате равно -1). Для лучшей работы пригодится модуль cmath.
Что выведет программа?
Anonymous Quiz
6%
5
4%
8
30%
3
8%
None
49%
Error
3%
Другое
Применение функций по условиям

Знакомый тернарный оператор можно использовать и с функциями. Пример на картинке.
literal_eval

Фича для безопасного исполнения выражений, состоящих только из литералов.
Вычисление размера объектов

Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью sys.getsizeof().

Функция getsizeof вызывает метод __sizeof__ объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.
Функция reduce

Модуль functools раскрывает функциональные возможности Python. Например, в нём есть интересная функция reduce, последовательно применяющая функцию-аргумент к элементам списка, возвращая при этом в итоге единичное значение.

В примере мы используем функцию для последовательного сложения элементов списка.
Операторы множеств

Множество — это неупорядоченная коллекция, где все элементы уникальны. То есть одно и то же значение не может повторяться дважды.

Помимо обычных методов, у множеств реализована поддержка различных операторов: объединение, пересечение, симметрическая разность, обычная разность и некоторые другие.

Примеры этих операторов можете посмотреть выше на картинке.
Numerizer

С помощью функции numerize из пакета numerizer можно перевести текст в числа, то есть, например, из строки "five" получить число 5. К сожалению, работает только с английским языком.
Генерация случайных данных

Пакет faker позволяет создавать случайные данные, которые затем можно использовать, например, для тестирования программ. К примеру методы name, address, job и email генерируют соответственно случайное несуществующее имя, адрес, должность и почту.

Разнообразие методов довольно широкое, с полным спектром можно ознакомиться в документации.
Деструкторы

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

Переопределение деструкторов на практике встречается редко, но на случай каверзных вопросов на собеседованиях стоит знать об этой особенности.
Создание капчи

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

В Python капчу реализовать можно довольно просто — с использованием пары модулей сначала создаётся картинка, затем сохраняется в определённый файл. Результат выполнения программы вы можете увидеть на картинке снизу.
Получаем исходный код

Встроенный модуль inspect даёт возможность увидеть исходный код созданных программ. Функция getsource(), например, возвращает строку, где содержится код переданной ей функции, модуля или класса.
Преобразование текста в речь

Рассмотрим модуль pyttsx3, позволяющий озвучивать текст прямо во время выполнения программы. Для запуска кода с картинки необходимо установить модуль при помощи pip install pyttsx3. Запущенная программа спросит, как у вас дела, и скажет, что любит макароны.

Модуль позволяет менять настройки произношения. Полная документация доступна по ссылке: https://pypi.org/project/pyttsx3/