⚡️ Определяем тип строки
·
·
#миниурок #str
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 и подобного, все шаблоны разобраны на реальных примерах.
#миниурок
python-guide — проект-документация по языку, от новичка до профи. Качать его не обязательно, ведь есть и веб версия.
TheAlgorithms — репозиторий с огромным количеством реализованных алгоритмов, структур данных
python-patterns — набор шаблонов проектирования, написанных на Python. Здесь нет ConcreteObserver2 и подобного, все шаблоны разобраны на реальных примерах.
#миниурок
👍10
⚡️ Перечисления в Python
Это набор значений, который заменяет непонятные числа на имена. Создаются они с помощью модуля enum.
Мы можем унаследоваться от Enum для создания констант. А можем от IntEnum, тогда у констант будут свойства int.
Функция
#миниурок #enum
Это набор значений, который заменяет непонятные числа на имена. Создаются они с помощью модуля enum.
Мы можем унаследоваться от Enum для создания констант. А можем от IntEnum, тогда у констант будут свойства int.
Функция
auto()
автоматически подставляет следующее значение константе, а @unique
проверяет, чтобы значения не повторялись. Подробнее.#миниурок #enum
👍3
⚡️ Тесты в документации
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
#миниурок #doctest
Такой подход интересен тем, что позволяет другому программисту понять как работает функция в определённых ситуациях, а вам — протестировать её работу.
Реализуется подобная фича с помощью встроенного модуля doctest. Он ищет текста, которые выглядят как интерактивные сеансы Python (>>>, ... и подобные символы).
Вы можете запускать тесты так же, как в примере, а можно с помощью терминала:
python -m doctest -v example.py
.#миниурок #doctest
🔥7👍3
⚡️ Несколько вариантов одной функции
В Python у вас не может существовать несколько функций с одинаковыми именами, которые работают с разными типами данных. Но такое возможно сделать с помощью multipledispatch.
Установка:
В зависимости от переданных аргументов будет выбираться правильная функция.
#миниурок #multipledispatch
В Python у вас не может существовать несколько функций с одинаковыми именами, которые работают с разными типами данных. Но такое возможно сделать с помощью multipledispatch.
Установка:
pip install multipledispatch
Просто навешиваете @dispatch
на функцию, куда передаёте тип, с которыми работает именно эта функция.В зависимости от переданных аргументов будет выбираться правильная функция.
#миниурок #multipledispatch
👍5
⚡️ Парсим YouTube
С помощью pytube мы можем узнать имя видео, его автора,где он живёт, описание и множество другого. Модуль также работает с плейлистами.
Установка:
Подробнее весь функционал описан в документации. А исходный код можно найти на странице github.
#миниурок #pytube
С помощью pytube мы можем узнать имя видео, его автора,
Установка:
pip install pytube
Стоит отметить, что на обычном парсинге всё не заканчивается. Мы ещё можем загружать видео с ютуба на основе своих предпочтений (качество, расширение).Подробнее весь функционал описан в документации. А исходный код можно найти на странице github.
#миниурок #pytube
👍10
⚡️ Немного про регулярные выражения
Все мы знаем, что регулярные выражения пишутся только один раз. После их просто нереально разобрать и изменить.
Один разработчик нашёл способ как это исправить используя f-строки в Python. Вот его статья.
#миниурок #re
Все мы знаем, что регулярные выражения пишутся только один раз. После их просто нереально разобрать и изменить.
Один разработчик нашёл способ как это исправить используя f-строки в Python. Вот его статья.
#миниурок #re
👍3
⚡️ Создаём интерфейс командной строки
Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.
Установка:
Также он предоставляет доступ ко всем атрибутам, которые переданы в него. Об этом и не только подробнее в документации.
#миниурок #fire
Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.
Установка:
pip install fire
Модуль придерживается ООПшного стиля, что сильно упрощает интеграцию к себе в проект.Также он предоставляет доступ ко всем атрибутам, которые переданы в него. Об этом и не только подробнее в документации.
#миниурок #fire
👍1🔥1
⚡️ Context Manager
Помните про with? Там рассказывалось про его использование с классами, но ничто не мешает использовать его с функциями. Только нужна библиотека contextlib.
Чтобы функция могла работать с with, вы добавляете
Только ещё вам нужно yield, чтобы вернуть объект, с которым будет работать with и при этом только приостановить работу функции. Подробнее.
#миниурок #contextlib
Помните про with? Там рассказывалось про его использование с классами, но ничто не мешает использовать его с функциями. Только нужна библиотека contextlib.
Чтобы функция могла работать с with, вы добавляете
@contextmanager
или @asynccontextmanager
, в зависимости от того, нужно ли вам асинхронное выполнение.Только ещё вам нужно yield, чтобы вернуть объект, с которым будет работать with и при этом только приостановить работу функции. Подробнее.
#миниурок #contextlib
👍8
Multithreading vs Multiprocessing
Multithreading предполагает, что процессор может выполнять несколько потоков одновременно, где каждый поток запускает процесс. Хорошо справляется с IO нагрузкой.
Multiprocessing предполагает, что есть несколько процессоров, где каждый процессор может запускать один или несколько потоков. Хорошо справляется с большой нагрузкой на CPU.
#миниурок #multithreading #multiprocessing
Multithreading предполагает, что процессор может выполнять несколько потоков одновременно, где каждый поток запускает процесс. Хорошо справляется с IO нагрузкой.
Multiprocessing предполагает, что есть несколько процессоров, где каждый процессор может запускать один или несколько потоков. Хорошо справляется с большой нагрузкой на CPU.
#миниурок #multithreading #multiprocessing
👍7