Яндекс ищет тех, кто пишет на Python или Go
А также тех, кто хочет перейти на них с другого языка программирования. Не пропустите момент и успейте зарегистрироваться на Fast Track для бэкенд-разработчиков 26–27 февраля. Отборочный этап длится до 23 февраля, спешите! На мероприятии, которое пройдет в онлайн-формате, вы сможете за пару дней получить оффер в команду, которая разрабатывает FinOps платформу Яндекса.
FinOps платформа — это внутренняя высоконагруженная финансово-операционная система, через которую проходят денежные транзакции всех сервисов Яндекса. Приходите работать с нами, задачи сложные, но действительно интересные.
Регистрируйтесь, проходите отборочный этап и до встречи 26 и 27 февраля!
А также тех, кто хочет перейти на них с другого языка программирования. Не пропустите момент и успейте зарегистрироваться на Fast Track для бэкенд-разработчиков 26–27 февраля. Отборочный этап длится до 23 февраля, спешите! На мероприятии, которое пройдет в онлайн-формате, вы сможете за пару дней получить оффер в команду, которая разрабатывает FinOps платформу Яндекса.
FinOps платформа — это внутренняя высоконагруженная финансово-операционная система, через которую проходят денежные транзакции всех сервисов Яндекса. Приходите работать с нами, задачи сложные, но действительно интересные.
Регистрируйтесь, проходите отборочный этап и до встречи 26 и 27 февраля!
👍15🔥1
Работаем с котировками акций в Python
Библиотека yfinance предоставляет мощный и удобный инструмент для получения информации с ресурса
В сегодняшнем примере применим эту библиотеку чтобы узнать цену акций Майкрософт.
Тикер Макйрософт называется "MSFT", именно его необходимо вписать в методе поиска:
— Исторические данные рынка;
— Информация по дивидентам;
— Информация о фирме (адрес, количество работников, прибыль) и т. д.
Больше подробно об этой библиотеке можно посмотреть тут.
Пример с постройкой графика истории цены на тикер тут.
#yfinance
Библиотека yfinance предоставляет мощный и удобный инструмент для получения информации с ресурса
Yahoo! finance в Python. В сегодняшнем примере применим эту библиотеку чтобы узнать цену акций Майкрософт.
Тикер Макйрософт называется "MSFT", именно его необходимо вписать в методе поиска:
msft = yf.Ticker("MSFT")
Цена акции находится в поле ['regularMarketPrice']: price = msft.info['regularMarketPrice']
Кроме этого yfinance предоставляет огромное количество такой информации о тикере как: — Исторические данные рынка;
— Информация по дивидентам;
— Информация о фирме (адрес, количество работников, прибыль) и т. д.
Больше подробно об этой библиотеке можно посмотреть тут.
Пример с постройкой графика истории цены на тикер тут.
#yfinance
👍33🔥3
Работа с ChainMap из collections
СhainMap группирует несколько словарей или других сопоставлений вместе, чтобы создать единое представление.
Иногда нам нужно сгруппировать словари в один или же работать с множеством словарей как с одним, в этом случае вам поможет ChainMap.
Немного про особенности ChainMap:
— Представляет тот же интерфейс, что и словарь, но с дополнительными возможностями;
— Создает обновляемое представление;
— Видит внешние изменения во входных отображениях.
#collections
СhainMap группирует несколько словарей или других сопоставлений вместе, чтобы создать единое представление.
Иногда нам нужно сгруппировать словари в один или же работать с множеством словарей как с одним, в этом случае вам поможет ChainMap.
Немного про особенности ChainMap:
— Представляет тот же интерфейс, что и словарь, но с дополнительными возможностями;
— Создает обновляемое представление;
— Видит внешние изменения во входных отображениях.
#collections
👍33🔥1
Counter из collections
Для отсутствующих элементов вернется 0 вместо KeyError.
Немного о методах:
#collections
Counter — это подкласс словаря dict. Сама коллекция нужна для хранения элементов в виде словарных ключей, а их счетчики хранятся в виде значений словаря. Для отсутствующих элементов вернется 0 вместо KeyError.
Немного о методах:
elements — возвращает итератор по элементам, каждый из которых повторяется столько раз, сколько его количество. most_common — возвращает список из n наиболее распространенных элементов. #collections
👍30🔥1
Слабые ссылки
Weakref позволяет создавать слабые ссылки к объектам, но не поддерживают объект живым, если не осталось больше сильных ссылок.
Слабые ссылки нужны для организации кэшей и хеш-таблиц из тяжелых объектов, потому что в долгоживущих программах может закончится память из-за большого хранения в кэшах.
#weakref
Weakref позволяет создавать слабые ссылки к объектам, но не поддерживают объект живым, если не осталось больше сильных ссылок.
Слабые ссылки нужны для организации кэшей и хеш-таблиц из тяжелых объектов, потому что в долгоживущих программах может закончится память из-за большого хранения в кэшах.
#weakref
👍27🔥3
Рисуем графики
Графическая библиотека
В сегодняшнем примере применим эту библиотеку чтобы построить простой линейный график.
Сначала нам нужен список с данными, которые мы хотим изобразить на графике. Это может быть, например, список или
Метод
Кроме этого
— Точечные графики;
— Круговые диаграммы;
— Гистограммы;
— Тепловые карты;
— Пузырьковые диаграммы;
— И многие другие.
Больше подробно об этой библиотеке и способы ее применения можно посмотреть тут. Интерактивный пример работы с
#plotly
Графическая библиотека
plotly позволяет создавать интерактивные качественные графики в Python. В сегодняшнем примере применим эту библиотеку чтобы построить простой линейный график.
Сначала нам нужен список с данными, которые мы хотим изобразить на графике. Это может быть, например, список или
numpy массив: data = [1, 1.3, 2.1, 4, 3.5, 7]
Далее метод fig = px.line(y=data) принимает наши данные и строит график в виде точек с координатами из массива и обьединяет их линиями. Метод
fig.show() откроет графическое окно с изображенным графиком. Кроме этого
plotly позволяет строить такие графики как: — Точечные графики;
— Круговые диаграммы;
— Гистограммы;
— Тепловые карты;
— Пузырьковые диаграммы;
— И многие другие.
Больше подробно об этой библиотеке и способы ее применения можно посмотреть тут. Интерактивный пример работы с
plotly можно посмотреть тут. #plotly
👍64❤3👎2🔥1
Аннотации типов
Python имеет динамическую типизацию и позволяет нам оперировать переменными разных типов, и иногда у нас бывают ошибки, связанные с некорректной передачей данных неверного типа.
В современных версиях 3.6+ добавилась поддержка аннотации типов переменных, полей класса,аргументов и возвращаемых значений.
#typing
Python имеет динамическую типизацию и позволяет нам оперировать переменными разных типов, и иногда у нас бывают ошибки, связанные с некорректной передачей данных неверного типа.
В современных версиях 3.6+ добавилась поддержка аннотации типов переменных, полей класса,аргументов и возвращаемых значений.
#typing
👍65🔥1
Управление версиями Python
Инструмент pyenv позволяет легко переключаться между несколькими версиями Python. Он прост в использовании и следует лучшим традициям UNIX, где каждая утилита хорошо выполняет одну свою задачу.
Вкратце, основной функционал
— Позволяет изменять глобальную версию Python для каждого пользователя;
— Обеспечивает поддержку версий Python для каждого проекта;
— Позволяет переопределить версию Python с помощью переменной окружения;
— Выполняет поиск команд из нескольких версий Python одновременно.
Кстати, этот проект основан на rbenv и ruby-build и модифицирован для Python.
#pyenv
Инструмент pyenv позволяет легко переключаться между несколькими версиями Python. Он прост в использовании и следует лучшим традициям UNIX, где каждая утилита хорошо выполняет одну свою задачу.
Вкратце, основной функционал
pyenv выглядит так: — Позволяет изменять глобальную версию Python для каждого пользователя;
— Обеспечивает поддержку версий Python для каждого проекта;
— Позволяет переопределить версию Python с помощью переменной окружения;
— Выполняет поиск команд из нескольких версий Python одновременно.
Кстати, этот проект основан на rbenv и ruby-build и модифицирован для Python.
#pyenv
👍32👎3🔥2😱1
Обработка исключений
Исключения — это тип данных, который нужен для того, что бы сообщать нам об ошибках.
Существует базовое исключение
В блоке
Стоит учесть, что мы можем делать бесконечное количество вложенных блоков.
Грамотным способом является вылавливать только те исключения, которые мы ожидаем.
#exceptions
Исключения — это тип данных, который нужен для того, что бы сообщать нам об ошибках.
Существует базовое исключение
BaseException от которого наследуются все остальные исключения. В блоке
try мы выполняем инструкцию, которая может породить исключение, а в блоке except мы ловим ошибки и делаем свои операции.Стоит учесть, что мы можем делать бесконечное количество вложенных блоков.
Грамотным способом является вылавливать только те исключения, которые мы ожидаем.
#exceptions
👍54🔥10
Получаем метаданные из аудиофайла
Для извлечения метаданных из аудиофайлов, а также их редактирования есть очень удобный модуль
Модуль поддерживает форматы метаданных
#audio #mutagen
Для извлечения метаданных из аудиофайлов, а также их редактирования есть очень удобный модуль
mutagen. Модуль позволяет получить всю основную информацию об аудиофайле: длину, битрейт, исполнителя и так далее. Модуль поддерживает форматы метаданных
APEv2 и ID3v2, анализируя все кадры ID3v2.4 (посмотреть все нужные теги ID3v2 можно тут). #audio #mutagen
🔥25👍19👎3
Получаем и задаем лимит рекурсии
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает
Но с помощью модуля
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
#рекурсия #лимиты
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает
RecursionError во время создания рекурсивных алгоритмов. Но с помощью модуля
sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
#рекурсия #лимиты
👍38🔥2
Wikipedia в Python
В случае, если вам не хватает прошлого
Устанавливается этот модуль через пакетный менеджер
#модули #wikipedia
В случае, если вам не хватает прошлого
howdoi, можете взглянуть на модуль, который обращается к API Википедии. Устанавливается этот модуль через пакетный менеджер
pip. А использовать его можно без всяких трудностей – всё самое важное показано на картинке.#модули #wikipedia
👍51🔥4👎1
Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
#словари #сортировка
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
key функции sorted для указания функции, которая будет вызываться на каждом элементе до сравнения.#словари #сортировка
👍80🔥9😱2
Функция reduce
Модуль
Таким образом, в примере выше
#функции #reduce
Модуль
functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.Таким образом, в примере выше
reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее.#функции #reduce
👍48🔥5
Лимит рекурсии
В Python не поддерживается хвостовая рекурсия, из-за чего зачастую возникает
Однако делать это слегка опасно, так как каждый новый вызов занимает достаточно много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы.
#рекурсия #sys
В Python не поддерживается хвостовая рекурсия, из-за чего зачастую возникает
RecursionError во время создания рекурсивных алгоритмов. Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Однако делать это слегка опасно, так как каждый новый вызов занимает достаточно много памяти. И вообще лучше стараться использовать не рекурсию, а обычные циклы.
#рекурсия #sys
👍19😱2❤1🔥1