Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
914 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Нахождение файлов по шаблону

Основной фишкой модуля glob является удобная и лаконичная работа с поиском файлов по паттернам. Более того, можно даже пройтись по директориям рекурсивно.

В одноименный метод glob передаётся шаблон для поиска файлов, а возвращается список с результатами. Все методы следуют механизму и правилам сопоставления паттернов в стиле Unix.
Словарное включение

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

У Python есть хорошая встроенная поддержка функционального программирования. Одной из самых полезных возможностей является функция map(), особенно в сочетании с лямбда-функциями.

В нашем примере map() применяет простую лямбда-функцию на каждом элементе x и возвращает объект map, который можно преобразовать в какой-нибудь итерируемый объект вроде списка или кортежа.
Сортировка выборкой

Этот алгоритм сегментирует список на две части: отсортированную и неотсортированную. Наименьший элемент удаляется из второго списка и добавляется в первый.

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

Теперь, когда нам известно, что первый элемент списка отсортирован, находим наименьший элемент из оставшихся и меняем местами со вторым. Повторяем это до тех пор, пока не останется последний элемент в списке.

По мере увеличения значения i нужно проверять меньше элементов.

Время сортировки
Затраты времени на сортировку выборкой в среднем составляют O(n²), где n — количество элементов списка.
1👍1
Скорость соединения

Нужно проверить скорость интернета? Не проблема, так как в Питоне есть специальная библиотека Pyspeedtest, которая позволяет быстро выполнить полную проверку скорости вашего WiFi.

Установка библиотеки - pip install pyspeedtest.
Сокращение ссылок

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

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

Устfновка библиотеки - pip install pyshorteners.
Рисуем шахматную доску

Результат программы вместе с исходным кодом будет в комментариях под записью.
Библиотека mutagen

Данная библиотека позволяет извлекать всю основную информацию об аудиофайле, например, длину, битрейт, исполнителя и другие дополнительные теги. Для того, чтобы установить mutagen достаточно выполнить команду pip install mutagen.

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

Часто для проверки работы алгоритмов нужно собрать достаточно данных, чтобы на них тестировать. Создание данных вручную занимает очень много времени, для избавления от этой рутины может помочь модуль mimesis, который умеет генерировать рандомные данные по нескольким критериям. Устанавливается он просто выполнив: pip install mimesis.

В примере выше мы генерируем адресные данные.
👍1
Библиотека mimesis(продолжение см пост выше)

В примере выше мы генерируем данные, связанные со временем/датой.

Большое преимущество этого модуля состоит в том, что данные возвращаются в формате datetime объекта.
Что выведет код сверху?
Anonymous Quiz
28%
0 2 4
19%
1 3 5
24%
1 3
8%
0
4%
4
16%
Error
Списковое включение (быстрый способ)

Списковое включение — самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный выше пример кода, чтобы понять, как это работает.
Сегодня языку Python исполняется 31 год! 🎉 🎉 🎉 🎉
Поздравим легенду в комментариях
Превращаем PDF в текст

Думаю, все периодически работают с PDF-документами. И зачастую это ручная и скучная работа. Но Python может автоматизировать даже такую рутинную задачу.

Модуль pdftotext создан именно для работы с документами в PDF формате. Устанавливается он при помощи команды "pip install pdftotext", а использовать его проще простого. Все основные операции представлены на картинке выше.

Кстати, здесь ещё интересно то, что исходный код модуля написан на C++. Поэтому есть небольшая вероятность, что придётся повоевать с зависимостями.
👍3
Бесконечный итератор последовательности

С помощью itertools.cycle() создаётся кольцевой итератор. Прийдя к последнему значению, он вновь начинает с первого.
Википедия

А как часто вы пользуетесь википедией? Если часто, то процесс поиска информации в ней можно немного упростить. За счёт официальной библиотеки, что так и называется Wikipedia, вы можете быстро находить информацию по разным ключевым словам.
help()

Функция help() предоставляет простой способ получения доступа к документации Python без интернета для любой функции, ключевого слова или модуля.
Библиотека mimesis(продолжение см пост выше)

В этот раз сгенерируем данные о человеке.
JmesPath

Работать с JSON в Python — сплошное удовольствие, ведь он прекрасно отображается в Python-словаре. Кроме того, Python поставляется с собственной библиотекой для создания и анализа, или разбора, JSON. Для меня это одна из лучших функций в Python. Если мне нужно поработать с JSON, то я непременно выберу Python.

Но в стандартном пакете есть и кое-что, чего вам может не хватать. Если вы пользуетесь json.loads(), а данные из словаря получаете вручную (возможно, добавляя какие-то циклы), то готовьтесь сильно удивиться!

JMESPath (читается как «JAMES PATH») делает работу с JSON на Python еще проще. Теперь вы можете декларативно указывать, как извлекать элементы из JSON-документа. Вот несколько примеров, иллюстрирующих возможности JMESPath.