TGTGInsightinteligencia telegramLIVE / telegram public index
Volver a canales
Python Academy avatar

TGINSIGHT CHAT

Python Academy

@python_academy

Educación

Python Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu

Suscriptores4.5万Suscriptores actuales
Posts rastreados1,014Posts indexados
Alcance reciente42,730Vistas de posts recientes
Posts recientes

Posts recientes

Pág. 8 de 85 · 1,014 posts

Publicado 9 mar

Время исполнения программы Зачастую требуется замерить время исполнения кода, чтобы понять, насколько оптимальное решение было выбрано. Как вариант, можно воспользоваться функцией time из модуля time, которая возвращает текущее время в формате Unix. Перед исполнением нашего кода сохраним начальное время, а после — конечное. Путем вычета первого из второго и получим время исполнения программы. Использование time.time() — не самый точный и лучший вариант, но, например, для быстрого сравнения двух разных частей кода подходит хорошо. #time

3,680 views

Hashtags

Publicado 8 mar

Функция reduce Модуль functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат. Таким образом, в примере выше reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее. #функции#reduce

3,470 views

Publicado 7 mar

Скачиваем видео с YouTube Пакет pytube предоставляет всю небходимую функциональность для скачивания видео с YouTube, а также для сбора всей информации о нем. Для работы нам необходимо создать объект класса YouTube. Помимо ссылки на видео в конструктор можно передать в качестве параметров функции для обработки прогресса загрузки и завершения. Большинство видео на ютубе не имеют аудиодорожки на потоках с высоким разрешением, свыше 720p — это связано с технологией передачи DASH, которую использует ютьюб. Решение данной проблемы покажем в следующем посте. На картинке мы показали как отфильтровать потоки с прогрессивной передачей и выбрать из полученного списка с максимальным доступным разрешением до 720p. Для загрузки выбранного потока используем функцию download(), в функцию можно передать в качестве параметров путь до директории для сохранения и имя файла. #youtube

3,620 views

Hashtags

Publicado 6 mar

Проверяем скорость интернета Каждый хоть раз проверял скорость своего интернета на Speedtest. А у них, оказывается, есть не только сайт и приложения, но и пакет на Python для этого дела. У объекта класса Speedtest методы download() и upload() выдают соответственно скорость скачивания и загрузки данных. Методы отдают результат в байтах, поэтому для наглядности в примере я перевел все данные в мегабайты при выводе. #python#speedtest

3,530 views

Publicado 5 mar

Инкремент с помощью __pos__ В Python нет операции инкремента ++ как в си-подобных языках, поэтому используется x += 1. Однако запись ++x является валидным кодом (но не x++), так как это просто два унарных оператора сложения. При применении унарного плюса у объекта вызывается магический метод __pos__, то есть запись ++x можно понять как x.__pos__().__pos__(). Зная это, можно реализовать класс, который будет представлять число и поддерживать поведение инкремента. Код на картинке может показаться сначала немного сложным, но лучше проследить логику и понять работу метода __pos__. Если реализовать все остальные необходимо магические методы, то может получится полноценный класс числа, но в продакшне такие приколы лучше не писать. #магические_методы#__pos__

3,510 views

Publicado 4 mar

Ускоряем код с помощью векторизации Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами. Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize. По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению. #vectorize#numpy

3,670 views

Publicado 3 mar

Работа с датой и временем Dateutil – предоставляет расширения для методов, уже имеющихся в datetime, имеет возможности для обработки сырых данных. Dateutil разбит на несколько подклассов: easter — используется для вычисления даты и времени с учетом разных календарей, а именно: западный,православный,юлианский. parser — включает в себя продвинутый парсер даты и времени, с помощью которого мы можем парсить разные форматы. relativedata — предназначен для замены компонентов даты. Так-же следуют упомянуть utils , он содержит основные функции для работы с датой и временем. #Dateutil

3,590 views

Hashtags

Publicado 2 mar

Получение аудиопотока с микрофона Библиотека PyAudio предоставляет возможности для записи аудиопотока с различных устройств. PyAudio работает посредством кросс-платформенной библиотеки PortAudio (поэтому необходимо заранее установить пакет разработки portaudio19-dev). В приведенном примере мы создаем объект класса PyAudio и открываем поток с рядом констант для настройки аудиопотока, поступающего с микрофона (для выбора другого устройства нужно передать его номер в качестве аргумента input_device_index). Данный объект потока позволяет считывать с устройства с помощью метода stream.read(). Полученную информацию мы можем использовать для дальнейшего анализа и модификации. В примере же мы просто считываем 10 секунд, после чего записываем их в аудио-файл wav. #pyaudio#audio

3,540 views

Publicado 2 mar

Дескрипторы Дескриптор – это атрибут объекта со “связанным поведением”, то есть такой атрибут, при доступе к которому его поведение переопределяется методом протокола дескриптора. Если хотя бы один из этих методов определен в объекте, то можно сказать, что этот метод – дескриптор. Для того, чтобы определить свой собственный дескриптор, обычно определяют три специальных метода класса __get__, __set__ или __delete__. После этого можно создать новый класс и в атрибут этого класса записать объект типа дескриптор. У данного объекта будет переопределено поведение при доступе к атрибуту (__get__), при присваивании значений (__set__) или при удалении (__delete__). #классы#дескрипторы

3,390 views

Publicado 1 mar

Метод join у строк У строк есть полезный метод str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки. Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод. Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке. #строки

3,470 views

Publicado 28 feb

Бесконечность Вообще float является крайне интересным типом данных и не перестает удивлять своими особенностями. Про значение Not a Number мы уже писали, а вот сегодня поговорим про infinity. Строковые литералы 'inf' и 'infinity' можно конвертировать в float, и в результате получается значение бесконечности. Для отрицательной "бесконечности" нужно поставить знак минуса перед словом. Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения. #float

3,440 views

Hashtags

Publicado 27 feb

Создание QR-кода с помощью qrcode инструмента Воспользуйтесь этим простым, но эффективныминструментом для генерации QR-кодов. Для рисования изображений необходима библиотека Pillow, так что проверьте ее наличие перед началом работы. Для получения изображения с QR-кодом достаточно использовать метод make(), передав ему нужныеданные. Сохранить результат можно с помощью методаsave(), примененного к созданному объекту изображения. Помимо этого, инструмент предлагает возможностьинтеграции изображений в QR-коды и поддерживаетшесть различных стилей оформления. Более подробную информацию, включая продвинутые примеры использования, вы найдете в официальнойдокументации по ссылке. #qrcode

3,820 views

Hashtags

12•••5678910•••15•••20•••25•••30•••35•••40•••45•••50•••55•••60•••65•••70•••75•••80•••8485