Senior Python Developer – Telegram
Senior Python Developer
43K subscribers
2.11K photos
4 videos
1 file
528 links
№ 4931117861
Публикуем интересные/полезные фичи/библиотеки языка.

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

Канал на бирже:
https://telega.in/c/seniorpy
Download Telegram
Проверяем, является ли заданная дата – праздником

Установка модуля - pip install holidays

В нашем примере мы проверяем является ли 25 декабря 2021 в Великобритании праздником. Наша программа выдает нам, что в этот день отмечается Рождество.

Подробнее про данный модуль можно почитать здесь.
Самый встречаемый символ в строке

Наиболее рекомендуемый метод, который можно использовать для поиска всех вхождений, - это метод - использование collections.Counter() + max(), он фактически получает частоту всех элементов, а также может использоваться для печати частоты одного элемента, если это необходимо.

Мы находим максимально встречающийся символ, используя max() для значений.
Результат выполнения кода?
Anonymous Quiz
46%
True
22%
False
8%
None
24%
Error
Построение круговой диаграммы с помощью Python

Еще один способ представления данных — круговая диаграмма, которую можно получить с помощью функции pie().

А чтобы диаграмма была идеально круглой, необходимо в конце добавить функцию axix() со строкой equal в качестве аргумента. Результатом будет такая диаграмма.

Результат нашего кода представлен в посте выше.
🐍 Самоучитель по Python для начинающих. Часть 3. Типы данных: преобразование и базовые операции

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

https://proglib.io/sh/hUmAZtk80K
Порядок разрешения методов

В Python существует так называемый Method Resolution Order (MRO), или порядок разрешения методов в классе. Всё, что вам нужно знать – это порядок, в котором Python ищет нужный атрибут или метод.

Этот порядок можно получить при помощи атрибута __mro__. Он говорит о том, что если мы в примере выше попробуем обратиться к атрибуту value, Python будет искать сначала в классе A, далее в B, затем в C и в самом конце в object.

Отсюда становится понятно, что артибут первее будет найден именно в классе B и равен он будет значению 1.
Инкапсуляция

Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным). Инкапсуляция делает некоторые из компонент доступными только внутри класса.

Инкапсуляция в Python работает лишь на уровне соглашения между программистами о том, какие атрибуты являются общедоступными, а какие — внутренними.

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

Двойное подчеркивание в начале имени атрибута даёт большую защиту: атрибут становится недоступным по этому имени. Однако полностью это не защищает, так как атрибут всё равно остаётся доступным под именем _ИмяКласса__ИмяАтрибута.
#вопросы_с_собеседований
Что будет выведено в результате выполнения данного кода?

Ответ:
list1 = [10, 'a']
list2 = [123]
list3 = [10, 'a']

Объяснение:
Многие могут ошибочно предположить, что list1 будет равен [10], а list3 будет равен ['a'], думая, что всякий раз при вызове функции extendList аргумент list будет равен значению по умолчанию [].

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

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

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

Установка модуля - pip install platform

Подробнее можно почитать здесь.
Узнаем расстояние между городами

Геодезическое расстояние – это длина кратчайшего пути между двумя точками на любой поверхности Земли. В следующем примере мы покажем, как пользователь может вычислить геодезическое расстояние на основе данных широты и долготы.

В нашем примере мы узнаем, ято расстояние между городами Нью-Йорк и Техас 2507 километров.
Создание/изменение документов MS Word на Python

Модуль python-docx предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.

Установка пакета - pip install python-docx.

В нашем примере мы создаем/открываем документ.

Подробно про этот модуль можно почитать здесь.
Определяем тип изображения с помощью Python

Установка модуля - pip install imghdr

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

Подробнее можно почитать здесь.
Пароль на код

Этот трюк с Python отлично подходит для защиты вашего кода паролем. Мы будем использовать функцию getpass() из библиотеки getpass , которая кодирует ваш ввод. Это предотвратит запуск кода без пароля.
Преобразование WORD в PDF

Устали от необходимости использовать онлайн-конвертеры docx в PDF с плохими интерфейсами и ограничениями? Тогда начинайте пользоваться модулем docx2pdf. :)

Установка модуля — pip install docx2pdf. Подробнее с модулем можно ознакомиться здесь.
Работа с датами

Модуль python-dateutil предоставляет мощное расширение для стандартного datetime. Устанавливается он следующим образом:

Установка библиотеки - pip3 install python-dateutil

Выше приведен пример парсинга даты из логов.

Документацию пакета можно найти здесь.
👮 Raspberry Pi начеку: делаем за час охранную систему с помощью датчика расстояния и камеры

Создаем охранную систему с помощью Raspberry Pi, датчика расстояния HC-SR04 и камеры. Снимки нарушителя границ безопасности отправляем на почту и получаем уведомление в мобильное приложение IFTTT.

https://proglib.io/p/raspberry-pi-nacheku-delaem-za-chas-ohrannuyu-sistemu-s-pomoshchyu-datchika-rasstoyaniya-i-kamery-2021-11-17
art

Всё, что вам может понадобится для вывода красивых надписей или артов в терминал. Ставится с помощью команды pip install art. Полный список возможностей есть в документации.
Emoji

Пакет Emoji либо впечатляет, либо огорчает. Все зависит от самого «оценщика». :) Шутки шутками, но этот пакет очень помогает при анализе данных из соцсетей.

Почитать документацию и ознакомиться с другими примерами можно на странице пакета emoji.