Python Community
12.9K subscribers
1.26K photos
37 videos
15 files
741 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Определяем тип строки

str.isalpha() возвращает True, если все символы являются частью алфавита (a-z).

str.isdecimal() — проверяет, является ли строка только набором цифр (1-9). В то время как:

· str.isdigit() вернёт True, даже если строка будет содержать странные цифры (² или \u00B2).

· str.isnumeric() вернёт True, даже если это дробь (½ или \u00BD).

str.isalnum() — проверяет, является ли строка набором символов или цифр.

#миниурок #str
👍10
⚡️ Учим Python с GitHub

python-guide — проект-документация по языку, от новичка до профи. Качать его не обязательно, ведь есть и веб версия.

TheAlgorithms — репозиторий с огромным количеством реализованных алгоритмов, структур данных

python-patterns — набор шаблонов проектирования, написанных на Python. Здесь нет ConcreteObserver2 и подобного, все шаблоны разобраны на реальных примерах.

#миниурок
👍10
⚡️ Перечисления в Python

Это набор значений, который заменяет непонятные числа на имена. Создаются они с помощью модуля enum.

Мы можем унаследоваться от Enum для создания констант. А можем от IntEnum, тогда у констант будут свойства int.

Функция auto() автоматически подставляет следующее значение константе, а @unique проверяет, чтобы значения не повторялись. Подробнее.

#миниурок #enum
👍3
⚡️ Тесты в документации

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

Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).

Вы можете запускать тесты так же, как в примере, а можно с помощью терминала: python -m doctest -v example.py.

#миниурок #doctest
🔥7👍3
⚡️ Несколько вариантов одной функции

В Python у вас не может существовать несколько функций с одинаковыми именами, которые работают с разными типами данных. Но такое возможно сделать с помощью multipledispatch.

Установка: pip install multipledispatch

Просто навешиваете @dispatch на функцию, куда передаёте тип, с которыми работает именно эта функция.

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

#миниурок #multipledispatch
👍5
⚡️ Парсим YouTube

С помощью pytube мы можем узнать имя видео, его автора, где он живёт, описание и множество другого. Модуль также работает с плейлистами.

Установка: pip install pytube

Стоит отметить, что на обычном парсинге всё не заканчивается. Мы ещё можем загружать видео с ютуба на основе своих предпочтений (качество, расширение).

Подробнее весь функционал описан в документации. А исходный код можно найти на странице github.

#миниурок #pytube
👍10
⚡️ Немного про регулярные выражения

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

Один разработчик нашёл способ как это исправить используя f-строки в Python. Вот его статья.

#миниурок #re
👍3
⚡️ Создаём интерфейс командной строки

Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.

Установка: pip install fire

Модуль придерживается ООПшного стиля, что сильно упрощает интеграцию к себе в проект.

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

#миниурок #fire
👍1🔥1
⚡️ Context Manager

Помните про with? Там рассказывалось про его использование с классами, но ничто не мешает использовать его с функциями. Только нужна библиотека contextlib.

Чтобы функция могла работать с with, вы добавляете @contextmanager или @asynccontextmanager, в зависимости от того, нужно ли вам асинхронное выполнение.

Только ещё вам нужно yield, чтобы вернуть объект, с которым будет работать with и при этом только приостановить работу функции. Подробнее.

#миниурок #contextlib
👍8
Multithreading vs Multiprocessing

Multithreading предполагает, что процессор может выполнять несколько потоков одновременно, где каждый поток запускает процесс. Хорошо справляется с IO нагрузкой.

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

#миниурок #multithreading #multiprocessing
👍7