Just Python
10.2K subscribers
4.39K photos
11 videos
4.38K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
contextlib.redirect_stdout

Функция contextlib.redirect_stdout в Python временно перенаправляет вывод print() и других операций записи. Полезно, когда нужно записать вывод в файл или перехватить его для дальнейшей обработки.

#theory // Just Python
pathlib.Path.glob()

В Python метод Path.glob() из модуля pathlib используется для поиска файлов и директорий, соответствующих шаблону. Он мощнее, чем простое перечисление файлов, и поддерживает поиск с использованием подстановочных знаков.

#theory // Just Python
Работа с файлами: Часть 2

Чтение файла:

read() — считывает весь файл как строку.
readline() — считывает одну строку.
readlines() — возвращает все строки файла в виде списка.

Запись в файл:

write() — записывает строку в файл.
writelines() — принимает список строк и записывает их в файл. При использовании режима "w" файл будет перезаписан, а "a" добавит данные в конец файла.

#theory // Just Python
Атрибут all

Атри
бут __all__ используется для контроля того, какие элементы модуля экспортируются при импорте с помощью from module import *.
Этот атрибут должен содержать список имен, которые будут экспортированы.

Если __all__ не определен, то при импорте будут экспортированы все имена, не начинающиеся с _.

Испольall __all__ позволяет явно указать автору модуля, какие части модуля являются публичным API, а какие — внутренней реализацией.
Это способствует лучшей структуре кода и предотвращает неожиданный экспорт внутренних элементов модуля.

Проще all __all__ — это простой механизм контроля области видимости при импорте. Он помогает организовать чистый публичный интерфейс модуля.

#theory // Just Python
Как индексируются списки в Python

Списки поддерживают порядок элементов.

Каждый элемент имеет собственный порядковый номер — индекс, который можно использовать для доступа к самому элементу.

Индексы в Python (и любом другом современном языке программирования) начинаются с 0 и увеличиваются для каждого элемента в списке.

#theory // Just Python
Библиотека yt-dlp

yt-dlpэто библиотека и утилита командной строки для скачивания видео с YouTube и других сайтов.

Основные возможности и применение yt-dlp:
— Поддерживает скачивание видео, аудио, плейлистов, каналов и др с YouTube. Помимо этого работает с сотнями других сайтов — Vimeo, Facebook, ВКонтакте, TikTok и др. Позволяет скачивать контент практически отовсюду.
— Извлечение метаданных и обложек видео.
— Конвертация медиафайлов в другие форматы после скачивания.
— Поддержка прокси и лимитов скорости.
— Множество настроек для извлечения данных, именования файлов, пост-обработки и т.д.
— Удобная утилита командной строки и модуль Python для автоматизации.

#theory // Just Python
Использование оператора match для структурного паттерн-матчинга в Python 3.10

Оператор match — это новая конструкция в Python 3.10, которая позволяет выполнять структурный паттерн-матчинг. Она дает возможность сопоставлять сложные структуры данных и упрощает обработку разных типов входных данных

#theory // Just Python
Работа с файлами: Часть 3

Функции seek() и tell() позволяют управлять положением указателя внутри файла. seek(offset, from_what) — устанавливает указатель в файл, где from_what=0 — от начала, 1 — от текущей позиции, 2 — от конца. tell() возвращает текущую позицию указателя.

Модуль os и pathlib предоставляют функции для работы с файловой системой, например, для проверки существования файлов или создания папок.

Для хранения сложных объектов Python, таких как словари и списки, часто используют формат JSON.

#theory // Just Python
textwrap.dedent()

В Python метод textwrap.dedent() удаляет общие отступы из многострочного текста. Это полезно для упрощения форматирования строк, особенно в документации или больших блоках текста.

#theory // Just Python
Masonite — мощный Python-фреймворк для веб-приложений

Masonite — это современный и простой в использовании фреймворк для создания веб-приложений. Он предлагает удобный API, поддержку архитектуры MVC и встроенные инструменты для миграций и тестирования.

Поддержка инверсии управления (IoC) для гибкого управления зависимостями.
Интеграция с популярными инструментами, такими как ORM Orator.
Удобная система маршрутизации и шаблонов.

Ссылочка на доку

#theory // Just Python
Сортировка списков: Часть 1

Python предлагает два основных способа сортировки списков: метод sort() и функцию sorted(). Метод sort() сортирует список на месте и не возвращает новый список. Функция sorted() возвращает новый список, не изменяя оригинал.

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

#theory // Just Python
Метакласс

Метакласс (metaclass) в Python — это класс, который определяет поведение других классов, которые являются его экземплярами. В некотором смысле метакласс можно рассматривать как «класс для классов». Он задает правила и ограничения для создания и работы классов.

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

#theory // Just Python
zip_longest()

В Python функция zip_longest() из модуля itertools позволяет объединять итерируемые объекты разной длины, заполняя отсутствующие значения с помощью заполнителя (fillvalue). Это полезно для работы с несоответствующими наборами данных.

#theory // Just Python
exceptions

В Python и многих других языках программирования, exceptions (исключения) — это механизм, который позволяет обрабатывать ошибки и нестандартные ситуации во время выполнения программы. Когда возникает ошибка, Python генерирует исключение. Если исключение не обрабатывается, программа может завершиться с ошибкой.

В данном примере кода, операция x = 10 / 0 вызовет исключение ZeroDivisionError, так как нельзя делить на ноль. Однако благодаря конструкции try и except, программа не завершится с ошибкой. Вместо этого будет выведено сообщение «Произошла ошибка деления на ноль!».

#theory // Just Python
Peewee — лёгкий ORM для Python

Peewee — это компактная и простая в использовании ORM-библиотека для работы с базами данных.

Она поддерживает SQLite, MySQL, PostgreSQL и предоставляет удобный API для работы с моделями, упрощая взаимодействие с базами данных.

Ссылочка на доку

#theory // Just Python
Использование встроенного модуля logging для удобного логирования

Правильное логирование — это важный аспект разработки приложений, который помогает отслеживать поведение приложения и диагностировать проблемы. Модуль logging в Python предоставляет простой и гибкий способ создания логов.

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

#theory // Just Python
Узнаем длину кода в файле с помощью Python

В данном коде мы открываем файл 'file.py' для чтения и считываем все его строки в переменную lines.

Затем мы используем генератор списка, чтобы посчитать только те строки кода, которые не пустые (line.strip()) и не начинаются с символа комментария (not line.startswith('#')). Количество таких строк сохраняем в переменную code_lines и выводим ее значение с помощью функции print.

#theory // Just Python
Использование dataclasses для упрощения работы с данными

dataclass — это специальный декоратор в Python (доступный с версии 3.7), который автоматически создает методы, такие как init, repr, eq и другие, для классов, представляющих данные. Это позволяет сократить код и сделать его более читаемым.

Использование dataclass — это простой способ повысить эффективность разработки и сделать ваш код более чистым и понятным!

#theory // Just Python
Сортировка списков: Часть 2

Чтобы отсортировать список в обратном порядке, нужно использовать параметр reverse=True. Это работает как для метода sort(), так и для функции sorted(). Использование метода sort() будет немного быстрее, так как он работает на месте, тогда как sorted() создаёт новый список, требуя больше памяти. Однако для задач, где важна неизменяемость исходных данных, sorted() предпочтителен.

#theory // Just Python
Использование contextlib для управления ресурсами

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

Использование contextlib и контекстных менеджеров — это простой и мощный способ сделать ваш код более безопасным и удобным для работы!

#theory // Just Python
Преобразование видео в Gif с помощью Python

MoviePy — Python библиотека для редактирования видео с открытым исходным кодом. Библиотека обеспечивает поддержку чтения и записи для нескольких важных форматов видео и аудиофайлов.

$ pip install moviepy

#theory // Just Python