3.73K subscribers
478 photos
29 videos
35 files
343 links
Здесь есть всё, чтобы упростить вам изучение Python.
Download Telegram
Ставим таймер в Windows

Разбирайте две утилитарные функции. Первая принимает в качестве аргумента время в секундах, спустя которое компьютер выключится. Вторая функция отменяет запланированное выключение.
Преобразование PNG в PDF

Для установки библиотеки img2pdf как всегда пользуемся менеджером pip — pip install img2pdf. Это пакет с открытым исходным кодом для преобразования изображений в формат pdf.
Как найти длину массива в Python

Чтобы узнать точное количество элементов, содержащихся в массиве, можно использовать встроенный метод len().

Он вернет вам целое число, равное общему количеству элементов в указанном вами массиве.

В этом примере массив содержал три элемента — 10, 20, 30. Поэтому длина массива равна 3.
Чтение аудио-файлов в массив numpy

Одним из основных действий в начале аудиоанализа конечно же является чтение аудио-файла и выгрузка его звукового временного ряда в виде массива numpy. Для этих целей хорошо подходит модуль scipy.io.wavfile, входящий в состав библиотеки scipy и предоставляющий функции для чтения и записи wav файлов.

Для чтения используем функцию read, которая возвращает частоту дискретизации и массив numpy со значениями звукового давления для каждого кадра. Т.к. файлы формата wav могут состоять из одного(моно) либо из двух(стерео) каналов, то и массив numpy будет, соответственно, являться одномерным либо двумерным (по подмассиву на каждый канал).

В качестве примера также добавили построение в matplotlib графика сигнала по полученным значениям.
​​Wikipedia в Python 

Библиотека wikipedia позволяет взаимодействовать с Википедией не выходя из редактора, для этого установите модуль командой pip install wikipedia. Метод page позволит получить страницу по вашему запросу, а summary отдаст короткое содержание найденной статьи.
Метод join

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

В результате метод join возвращает новую строку, которая собрана из элементов того самого итерируемого объекта. При этом в новой строке разделителем между элементами является та строка, у которой был вызван join.
Изменяем размер изображения pillow

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

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

Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный. 

Логика методов в этом пакете понятна на примерах. 
Функция enumerate для получения пар индекс-значение

Функция enumerate() применяется в случаях, когда необходим счётчик количества элементов в последовательности. Позволяет избавиться от необходимости инициировать и обновлять отдельную переменную-счётчик.
Модуль transliterate

Модуль transliterate представляет собой двунаправленный транслитератор текста для Python.

Транслитерирует (unicode) строки в соответствии с правилами, указанными в языковых пакетах, то есть заменяет все русские буквы на английские и наоборот по правилам транслитерации.

Выше представлена транслитерация текста с английского на русский, т.е. замена всех английских букв на русские.
Регулярные выражения (REGEX)

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

Если вам нужны сложные сопоставления, например, учет регистра — этот метод подойдет вам лучше всего. Но у него есть и недостатки: сложность и скорость работы. То есть, в простеньких задачах его лучше не использовать.
Функция dropwhile()

Функция dropwhile() модуля itertools создает итератор, который удаляет элементы из последовательности iterable до тех пор, пока функция predicate равна True или 1. Возвращается итератор с отобранными элементами.
Создание внутренних функций Python

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

В нашем коде мы определяем inner_func() внутри outer_func() для печати Hello, World! сообщение на экран. Для этого мы вызываем inner_func() в последней строке outer_func(). Это самый быстрый способ написать внутреннюю функцию на Python.
Сохраняем бинарные данные

Модуль pickle реализует двоичные протоколы для сериализации и десериализации объектов. Вы можете сохранить любой объект, если возможно перевести каждый его атрибут в двоичный вид.

Но классы, функции и методы сохранить не получится. Здесь также важно понимать, что при сохранении объекта сохраняется строка, указывающая, к какому классу относится этот объект.

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

Суть этого метода проста. Мы пишем цикл и создаем новую пустую строку. Цикл работает так: все символы кроме элемента с индексом n помещаются в новую строку. (n — индекс элемента, который нам нужно удалить)
Кэширование функций

На картинке — пример, где кэширование фактически спасает программу от зависания: декорация @lru_cache(maxsize=32), выполняющая кэширование, позволила сэкономить время выполнения программы. Кэширование помогает тогда, когда функция периодически вызывается с одинаковыми аргументами, промежуточно сохраняя результат, а не пересчитывая всё заново каждый раз.
Чтение JSON из файла

Чтение JSON из файла такое же простое, как и запись. С помощью библиотеки json мы можем спарсить JSON-строку прямо из файла.

json.load — очень важный метод, запомните его. С его помощью происходит чтение файла, парс JSON-данных. После этого все данные записываются в словарь и возвращаются вам.

Как и у json.dump, у json.load есть дополнительный метод. Он позволяет работать со строками напрямую, ведь чаще всего у вас не будет файлоподобного объекта, содержащего JSON. Как вы уже догадались, называется он json.loads. Допустим, вы вызываете конечную точку REST с помощью GET, который возвращает строку. Ее мы и можем напрямую передать в json.loads.
Ключевое слово global

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

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

Если нам необходимо выполнять слайсинг несколько раз в одной программе, было бы эффективно заключить нужные параметры в переменную. Таким образом мы сможем уменьшить количество «хардкода» («принудительное» присвоение переменной какого- либо значения, вместо того чтобы присваивать его динамически, в зависимости от ситуации).
Генераторы

Функции-генераторы выглядят как и обычные, но вместо return содержат выражения с ключевым словом yield для последовательного генерирования значений.

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

Если генератору больше нечего возвращать, то будет вызвано исключение StopIteration. В целом, генератор — это особый, более изящный случай итератора.