en
Feedback
Python академия

Python академия

Open in Telegram

Учи Python быстро и легко. Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам. ✔ Подходит для прокачки навыков кодирования. По всем вопросам @evgenycarter

Show more
7 171
Subscribers
-424 hours
-137 days
-4930 days
Posts Archive
Новички-бэкендеры часто выбирают между Java и Python. На бесплатном вебинаре Яндекс Практикума разберёмся, чем отличаются эти
Новички-бэкендеры часто выбирают между Java и Python. На бесплатном вебинаре Яндекс Практикума разберёмся, чем отличаются эти языки. → 22 мая в 19:00 Вести вебинар будут действующие программисты — эксперты и выпускники Практикума. Они расскажут: — что это за языки и зачем нужны; — какой язык подойдёт для игр, корпоративных приложений, машинного обучения или автоматизации; — какие сложности есть в изучении; — как выбрать язык под себя; — какие специалисты нужнее на рынке труда. В конце встречи можно будет задать вопросы и получить совет. → Приходите на встречу, чтобы сделать первый шаг к карьере.

Как исправить «NameError: Name Is Not Defined» в Python Мы получили сообщение об ошибке: NameError: name 'age' is not defined
Как исправить «NameError: Name Is Not Defined» в Python Мы получили сообщение об ошибке: NameError: name 'age' is not defined. Это означает, что переменная age не существует, мы её не задали. Чтобы исправить это, мы можем создать переменную, и наш код будет работать нормально. К примеру, это можно сделать следующим образом. Подписывайтесь на канал 👉@pythonofff

Асинхронно скачиваем файлы Имея список ссылок на картинки, которые нужно скачать, мы можем это сделать используя простой цикл for, тем самым скачав их последовательно одна за одной. Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс. Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета concurrent.futures. Она позволяет запустить нашу функцию, в нескольких екземплярах в параллельных потоках. В конструкторе необходимо указать максимальное количество потоков, которые будут одновременно запущены. Далее метод .map(download, urls) создает екземпляры нашей функции для скачивания файла, и раскидывает в них элементы списка urls. Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий. Подписывайтесь на канал 👉@pythonofff

Определение метода тестирования Это нужно для того, чтобы мы могли оценивать нашу модель и выводить точность на тестовом набо
Определение метода тестирования Это нужно для того, чтобы мы могли оценивать нашу модель и выводить точность на тестовом наборе. Большие отличия от метода тестирования заключаются в том, что мы используем model.eval(), чтобы перевести модель в режим тестирования, и torch.no_grad(), который отключит вычисление градиента, так как мы не используем обратное распространение во время тестирования. Наконец, мы вычисляем средние потери для набора тестов и общую точность. Подписывайтесь на канал 👉@pythonofff

Синхронизация потоков Блокировка — один из фундаментальных механизмов синхронизации в threading. Зачастую блокировки использу
Синхронизация потоков Блокировка — один из фундаментальных механизмов синхронизации в threading. Зачастую блокировки используются для доступа к разделяемым ресурсам. Для каждого такого разделяемого ресурса нам нужно создать объект типа Lock и, когда нам потребуется доступ к ресурсу, следует вызвать acquire, что бы взять контроль над блокировкой. В том случае когда нам потребуется освободить блокировку, то мы вызываем release. Стоит учесть то, что блокировку стоит освобождать даже в случае возникновения ошибок. Для этого можно использовать try-finally. Также все это можно заменить через оператор with. Оператор with автоматически захватывает блокировку перед входом в блок, и освобождает её после выхода. Интерактивный пример — тут. Ссылка документация — тут. Подписывайтесь на канал 👉@pythonofff

Модуль os Данный модуль предоставляет доступ к уникальным функциям, зависящим от конкретной системы. Атрибут os.name покажет
Модуль os Данный модуль предоставляет доступ к уникальным функциям, зависящим от конкретной системы. Атрибут os.name покажет тип операционной системы: posix — для linux и macOS nt — для операционных систем семейства Windows java — для систем, работающих в виртуальной Java-машине (например, Android) Модуль позволяет создавать, удалять, переименовывать файлы и папки. Возможность менять директорию и писать вместо /foler/file1, /foler/file2 и тд, можно просто сменить директорию через функцию os.chdir(). os.access() - проверить наличие файла и возможность записи/чтение. os.listdir() - список файлов и вложенных каталогов. os.path.abspath() - вернет абсолютный путь по относительному. Полный список и документацию можно посмотреть через dir() и help() соответственно. Подписывайтесь на канал 👉@pythonofff

Извлечение таблиц из PDF Camelot — это удобная библиотека, которая поможет вам извлечь любую таблицу из PDF файла. Также есть
Извлечение таблиц из PDF Camelot — это удобная библиотека, которая поможет вам извлечь любую таблицу из PDF файла. Также есть возможность использоваться Excalibur, это веб интерфейс Camelot. Почему вам стоит использовать Camelot: — Каждая таблица является DataFrame; — Возможность экспорта в множество разных форматов; — Можно отбрасывать таблицы на основе таких метрик как точность и пробелы, без необходимости вручную просматривать таблицу. Подписывайтесь на канал 👉@pythonofff

Как заменить атрибут в именованном кортеже Что делать, если значение одного атрибута необходимо изменить? Вам нужно обновить
Как заменить атрибут в именованном кортеже Что делать, если значение одного атрибута необходимо изменить? Вам нужно обновить его в данных. Для этого просто воспользуемся методом ._replace() Подписывайтесь на канал 👉@pythonofff

Библиотека для работы с итераторами Встроенный пакет itertools содержит сборник полезных итераторов, поговорим о нескольких и
Библиотека для работы с итераторами Встроенный пакет itertools содержит сборник полезных итераторов, поговорим о нескольких из них: combinations — возвращает кортеж в отсортированном порядке без повторяемых элементов. chain — возвращает элементы из объекта, пока он не будет исчерпан, затем переходит к следующему, используется для обработки множества последовательностей как единой. permutations — возвращает все возможные перестановки. filterfalse — возвращает все элементы для которых функция вернула false. startmap — применяет функцию к каждому элементу последовательности распаковывая его. В самой библиотеке их намного больше, поэтому советую вам ознакомится с документацией. Подписывайтесь на канал 👉@pythonofff

Counter Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет. К пр
Counter Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет. К примеру, у вас есть список каких-то случайных чисел. Что, если вы хотите узнать, сколько раз встречается каждое число? Счетчик counter позволяет легко вычислить частоту. Он работает не только с числами, но и с любым итерируемыми объектами, такими как строки и списки. Подписывайтесь на канал 👉@pythonofff

Форматирование чисел в f-строках Начиная с версии Python 3.6, стали доступны f-строки. Это удобный способ форматирования текс
Форматирование чисел в f-строках Начиная с версии Python 3.6, стали доступны f-строки. Это удобный способ форматирования текста. Но не все знают, что он умеет вставлять float числа с настраиваемым количеством знаков после запятой. Допустим у нас есть float число pi = 3.14159265359. Если мы его просто скорвертируем в строку, то она примет следующий вид: >>> str(3.14159265359) '3.14159265359' Но что если важно выписать только до сотых долей? Делается это черех f-строку: >>> f'Число Пи это {pi:.2f}' 'Число Пи это 3.14' После обьявления имени переменной мы вставляем следующую комбинацию: .2f, где цифра как раз и указывает, сколько знаков после запятой нужно преобразовать в строку. Более подробно это описано в PEP 498. Подписывайтесь на канал 👉@pythonofff

Как найти наиболее частотные элементы с помощью счетчика Счетчик очень полезен в реальных приложениях. Особенно, когда вам ну
Как найти наиболее частотные элементы с помощью счетчика Счетчик очень полезен в реальных приложениях. Особенно, когда вам нужно обработать большие данные, и вы хотите узнать частотность некоторых элементов. Давайте рассмотрим несколько очень полезных методов, использующих counter. Counter().most_common([n]) Подписывайтесь на канал 👉@pythonofff

Генерация шумов Перлина Шум перлина — это математический алгоритм по генерированию процедурной текстуры (градиентного шума) псевдо-случайным методом. Для нас он может пригодится в разных ситуациях: от симуляции временных рядов разных показателей до генерации процедурного мира как в Minecraft. Для Python уже существует библиотека-реализация этого алгоритма, называется она perlin-noise. pip install perlin-noise Сначала мы создаем обьект генератора шумов, и задаем ему количество октав и seed для встроенного рандомизатора: noise = PerlinNoise(octaves=10, seed=1) Обьявляем размер желаемой 2d матрицы: xpix, ypix = 100, 100 И используя списочное включение, генерируем 2d матрицу, где интенсивность значения от координат задает наш обьект генератора noise: pic = [[noise([i/xpix, j/ypix]) for j in range(xpix)] for i in range(ypix)] Пример картинки можно посмотреть в комментариях к этому посту. Подписывайтесь на канал 👉@pythonofff

#вакансия #удалённо #parttime #python #преподаватель OTUS – образовательная платформа. У нас авторские курсы разной степени сложности, вступительное тестирование для студентов и преподаватели-практики из крупнейших компаний. 6 лет мы учимся друг у друга, советуемся, помогаем, делимся опытом и обсуждаем новости как в преподавании, так и в IT. Вакансия: преподаватель онлайн-курса на английском языке Python Backend Developer. Professional Можно без опыта преподавания, мы поможем вам освоить best practices. Локация: удаленно Преподаватель раскрывает тему с помощью теории и примеров из практики. Занятия проходят в Zoom в вечернее время. Условия: 100 евро за один вебинар (полтора часа), дополнительные активности, которые оплачиваются отдельно: перевод презентаций, проверка домашнего задания, проверка проекта и т.д. С нами вы сможете ✅ - структурировать свой опыт и знания; - прокачать софт-скиллы; - прокачать свой английский Бонусы 🎁 - наши курсы со скидкой/бесплатно; - можно приглашать лучших выпускников к себе на работу; - воркшопы и конференции для наших преподавателей. Обсудить подробнее @anna_phoenix7

Defaultdict Словарь представляет из себя неупорядоченный набор ключей и значений. В парах ключ:значение ключи должны быть уни
Defaultdict Словарь представляет из себя неупорядоченный набор ключей и значений. В парах ключ:значение ключи должны быть уникальны и неизменяемы. Поэтому список не может быть ключом словаря, так как он изменяемый. Подписывайтесь на канал 👉@pythonofff

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

Pyperclip Этот модуль был создан для межплатформенного копирования в Python. В Pyperclip есть функции copy() и paste(), котор
Pyperclip Этот модуль был создан для межплатформенного копирования в Python. В Pyperclip есть функции copy() и paste(), которые могут отправлять текст в буфер обмена и получать текст из него. Отправка вывода вашей программы в буфер обмена облегчает его вставку в email, текстовый редактор или другую программу. Подписывайтесь на канал 👉@pythonofff

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

UserDict Это класс-оболочка для словарей. Его синтаксис аналогичен UserList и UserString. Мы передаем словарь в качестве аргу
UserDict Это класс-оболочка для словарей. Его синтаксис аналогичен UserList и UserString. Мы передаем словарь в качестве аргумента, который хранится в атрибуте ‘data’. Подписывайтесь на канал 👉@pythonofff

Визуализация данных на карте с Folium Folium позволяет как и привязать данные к карте для визуализации фоновых картограмм, та
Визуализация данных на карте с Folium Folium позволяет как и привязать данные к карте для визуализации фоновых картограмм, так и передавать векторные, растовые, HTML визуализации в качестве маркеров на карте. Библиотека поддерживает настраиваемые наборы фрагментов MapBox или Cloudmade. Есть разные виды маркеров начиная с простого маркера местоположения в стиле листовки с всплывающим окном и всплывающей подсказкой HTML. Вы так-же можете налаживать изображения, видео, GeoJSON и TopoJSON. Подписывайтесь на канал 👉@pythonofff