Python академия
7.33K subscribers
2.52K photos
5 videos
354 links
Учи Python быстро и легко.

Ежедневно публикуем практические задачи, разборы, готовые решения, объяснения логики, советы по алгоритмам.

Подходит для прокачки навыков кодирования.

По всем вопросам @evgenycarter
Download Telegram
Зачем использовать namedtuple вместо обычного словаря

Основным преимуществом namedtuple является то, что он занимает меньше места (памяти), чем аналогичный словарь.

Поэтому, в случае больших данных именованные кортежи эффективны.

Выполняя приведенный выше код, вы обнаружите, что namedtuple имеет размер 64 байта, тогда как словарь занимает гораздо больше — 240 байт. Это почти в 4 раза больше памяти.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍3
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
Углубляемся в Итератор

Итератор нужен для доступа к объектам без раскрытия внутреннего предоставления.

Существует два вида итераторов: внешний,внутренний.

Внешний итератор — когда процессом обхода управляет клиент, с помощью магического метода next.

Внутренний итератор — принимает callback функции и уведомляет клиента о получение следующего элемента.

Сам итератор это объект, который возвращает свои элементы по одному разу. В Python это любой объект у которого есть магический метод next. Метод возвращает следующий элемент, если он существует, в другом случаи вернет StopIteration.

Так-же у каждого итератора должна быть метод iter, он возвращает сам итератор.

Интерфейса итератора состоит из first,next,current.

first — возвращает итератор к началу агрегата,что-то вроде reset.

next — переходит на следующий элемент агрегата, в случаи если нет следующего элемента, то будет StopIteration.

current — возвращает текущий элемент.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
4👍1
UserList

UserList — это похожий на список контейнерный тип данных, который является классом-оболочкой для списков.

Синтаксис будет следующим: collections.UserList([list]).

Вы передаете обычный список в качестве аргумента userlist. Этот список хранится в атрибуте ‘data’ и доступен через метод UserList.data.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2🤔2
Конвертируем файлы в аудио-формате

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

Для загрузки файла нам нужно выбрать функцию from_ c соответствующим форматом в названии из класса AudioSegment. Также можно воспользоваться наиболее общей функцией from_file, передав путь к файлу и его формат.

Для экспорта файла с нужным форматом, в который мы хотели его сконвертировать, используем функцию export у полученного после загрузки файла объекта класса AudioSegment.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍1
Как и когда можно использовать UserString

UserString можно использовать для изменения строк или выполнения определенных функций.

Предположим, вы хотите удалить определенное слово из текстового файла (где бы оно ни было). Возможно, некоторые слова в тексте неуместны.

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

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2🤔1
Визуализация данных на карте с Folium

Folium позволяет как и привязать данные к карте для визуализации фоновых картограмм, так и передавать векторные, растовые, HTML визуализации в качестве маркеров на карте.

Библиотека поддерживает настраиваемые наборы фрагментов MapBox или Cloudmade.

Есть разные виды маркеров начиная с простого маркера местоположения в стиле листовки с всплывающим окном и всплывающей подсказкой HTML.

Вы так-же можете налаживать изображения, видео, GeoJSON и TopoJSON.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2
Получение аудиопотока с микрофона

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

PyAudio работает посредством кросс-платформенной библиотеки PortAudio (поэтому необходимо заранее установить пакет разработки portaudio19-dev).

В приведенном примере мы создаем объект класса PyAudio и открываем поток с рядом констант для настройки аудиопотока, поступающего с микрофона (для выбора другого устройства нужно передать его номер в качестве аргумента input_device_index).

Данный объект потока позволяет считывать с устройства с помощью метода stream.read(). Полученную информацию мы можем использовать для дальнейшего анализа и модификации.

В примере же мы просто считываем 10 секунд, после чего записываем их в аудио-файл wav.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2
Counter

Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет.

К примеру, у вас есть список каких-то случайных чисел. Что, если вы хотите узнать, сколько раз встречается каждое число?

Счетчик counter позволяет легко вычислить частоту. Он работает не только с числами, но и с любым итерируемыми объектами, такими как строки и списки.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2
Модуль 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() соответственно.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍31
Дальнейшая обработка данных

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

Здесь в третьей строке мы отбрасываем два столбца с именами Id и Name и возвращаем копию нового датафрейма.

Четвертая строка проверяет, содержит ли столбец Type строку frozen или green, затем возвращает True и сохраняет эту строку.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
3👍1
Перемещение и удаление файлов в Python

Чтобы переместить файл, мы можем воспользоваться модулем os или модулем shutil. Вы увидите перемещение файла при помощи метода rename() из модуля os.

Синтаксис rename() тот же, только в качестве второго аргумента указывается путь к целевому файлу с именем самого файла.

os.rename(исходноеместонахождение, целевоеместонахождение)

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍3
Работаем с котировками акций в Python

Библиотека yfinance предоставляет мощный и удобный инструмент для получения информации с ресурса Yahoo! finance в Python.

В сегодняшнем примере применим эту библиотеку чтобы узнать цену акций Майкрософт.

Тикер Макйрософт называется "MSFT", именно его необходимо вписать в методе поиска:
msft = yf.Ticker("MSFT")
Цена акции находится в поле ['regularMarketPrice']:
price = msft.info['regularMarketPrice']
Кроме этого yfinance предоставляет огромное количество такой информации о тикере как:

— Исторические данные рынка;
— Информация по дивидентам;
— Информация о фирме (адрес, количество работников, прибыль) и т. д.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2🔥1
Работа с ChainMap из collections

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

Иногда нам нужно сгруппировать словари в один или же работать с множеством словарей как с одним, в этом случае вам поможет ChainMap.

Немного про особенности ChainMap:

— Представляет тот же интерфейс, что и словарь, но с дополнительными возможностями;
— Создает обновляемое представление;
— Видит внешние изменения во входных отображениях.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2
Рисуем графики

Графическая библиотека plotly позволяет создавать интерактивные качественные графики в Python.

В сегодняшнем примере применим эту библиотеку чтобы построить простой линейный график.

Сначала нам нужен список с данными, которые мы хотим изобразить на графике. Это может быть, например, список или numpy массив:
data = [1, 1.3, 2.1, 4, 3.5, 7]
Далее метод fig = px.line(y=data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями.

Метод fig.show() откроет графическое окно с изображенным графиком.

Кроме этого plotly позволяет строить такие графики как:

— Точечные графики;
— Круговые диаграммы;
— Гистограммы;
— Тепловые карты;
— Пузырьковые диаграммы;
— И многие другие.

Больше подробно об этой библиотеке и способы ее применения можно посмотреть тут.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍21
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
https://max.ru/tipsysdmin Типичный Сисадмин

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика

Программирование React📌
https://max.ru/react_lib React

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
💩2👍1
Профилирование

Профилирование — это процесс, который помогает при работе с данными и их обработке. Пожалуй, одна из самых известных Python-библиотек для этого – Pandas. Данная библиотека является довольно понятной в использовании и благодаря ей можно быстро выполнять анализ данных. Кроме того, Pandas имеет встроенную функцию .plot() как часть класса DataFrame, что позволяет демонстрировать на графиках обрабатываемые данные.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍2👎1
Генераторные фунции (generator functions)

Если предикатов фильтрации или обработчиков элементов списка много, то удобнее использовать генераторы. Они могут не дать прироста скорости, но помогут сэкономить память.

Генераторной фунцией в python называется функция, которая ведет себя как итератор. Для определения генераторной функции нужно использовать ключевое слово yield

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍3
Управление версиями Python

Инструмент pyenv позволяет легко переключаться между несколькими версиями Python. Он прост в использовании и следует лучшим традициям UNIX, где каждая утилита хорошо выполняет одну свою задачу.

Вкратце, основной функционал pyenv выглядит так:

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

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍3
Обработка исключений

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

Существует базовое исключение BaseException от которого наследуются все остальные исключения.

В блоке try мы выполняем инструкцию, которая может породить исключение, а в блоке except мы ловим ошибки и делаем свои операции.

Стоит учесть, что мы можем делать бесконечное количество вложенных блоков.

Грамотным способом является вылавливать только те исключения, которые мы ожидаем.

📲 Мы в MAX

Подписывайтесь на канал 👉@pythonofff
👍3