Как стать автором
Поиск
Написать публикацию
Обновить
526.58

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Шахматы вслепую — навык для Алисы

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.8K

Пять лет назад, в начале пандемии, мой ребёнок ещё занимался шахматами, но интерес к ним постепенно угасал. К тому же у него появились задания играть без доски - вслепую.

Тогда я решил написать навык для Яндекс.Станции, чтобы можно было играть в шахматы голосом.

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

За основу была взята библиотека python-chess и бинарник шахматного движка Stockfish:

Лошадью ходи

RAG‑агент для автоматизации инцидент‑менеджмента

Время на прочтение20 мин
Количество просмотров4.8K

Современные крупные организации сталкиваются с большим числом ИТ‑инцидентов — счет может идти на тысячи в месяц. Инциденты нередко повторяются со временем, однако найти похожий случай в базе знаний или в системе регистрации инцидентов непросто: стандартный поиск по ключевым словам часто неэффективен, а «держать в голове» детали всех инцидентов невозможно.

Читать далее

Дивидендная доходность Индекса Мосбиржи: как рассчитать за 5 минут с помощью Python

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.7K

В 2024 году инвестиции в Индекс Московской биржи принесли небольшие 1,6%. Это существенно ниже средней доходности (16,8% за 25 лет истории). Но не все знают, что спасло ситуацию в 2024 от минуса. Оказывается, ценовая доходность индекса была отрицательной -6,9%. И только дивидендная доходность 9,1% позволила индексу «сохранить лицо». Такая поддержка со стороны дивидендов происходит не первый раз. Считаем дивидендную доходность в Python за несколько строк.

Читать далее

Подводные камни при работе с файлами в Linux с примерами на Python

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров5.7K

Работа с файлами в Python кажется простой — open, read, write. Но на практике, особенно в системах с высокими требованиями к отказоустойчивости, стабильности и логированию, за банальными строками кода может скрываться целый мир проблем.

Читать далее

Молекулярное шифрование: полимерный пароль

Время на прочтение17 мин
Количество просмотров1.3K


Неустанно растущий объем информации требует создания новых носителей. Данная потребность уже давно привела к тому, что ученые с особым интересом рассматривают ДНК в качестве идеального (по мнению многих) носителя информации. Проблема в том, что доступ к данным на молекулах является крайне сложным, дорогим и длительным процессом. Ученые из Техасского университета в Остине (США) разработали новый метод кодирования информации в синтетических молекулах, который может сталь более выгодной и эффективной альтернативой биомолекул. Как именно работает данный метод, что лежит в его основе, и что удалось с его помощью сделать? Ответы на эти вопросы мы найдем в докладе ученых.
Читать дальше →

Slowpoke Finder: как я сделала CLI-инструмент для анализа медленных шагов в автотестах

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров979

Когда автотесты начинают тянуться как улитка, страдают все. CI медлит, разработчики косо смотрят на отчёты, а я вместо багов натыкаюсь на тайминги. Особенно это бесит в UI‑тестах — там каждый шаг может тормозить, но с ходу это не видно.

В команде периодически всплывал один и тот же вопрос:
«Почему один и тот же сценарий утром идёт дольше, чем вечером?»

Захотелось простой утилиты.

Никаких интеграций, серверов и плясок с бубном. Так появился Slowpoke Finder — маленькая CLI‑утилита и библиотека для анализа логов автотестов. Кидаешь ему JSON или HAR — он вытаскивает шаги и показывает, какие из них реально тормозят.

Читать далее

Как рефреймить ошибки в программировании: метод «Пяти почему» для детей и взрослых

Время на прочтение5 мин
Количество просмотров1.7K

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

Именно поэтому мы адаптировали метод «Пяти почему» из Lean-методологии — и это изменило не только то, как наши ученики относятся к багам, но и качество кода, который они пишут.

Читать далее

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3K

Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных в Х5 Tech, успел за это время познакомиться с несколькими интересными проектами и подходами в области обработки данных, об одном из которых пойдет речь далее.

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

Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

Читать далее

Еще чуть-чуть быстрее ищем кратчайший путь на Python

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.3K

Привет! На связи команда геоаналитики ecom.tech, мы строим модели машинного обучения на основе пространственных данных для задач ритейла в реальном времени, а также создаем промежуточные инструменты на базе методов прикладной геоаналитики. На наших технологиях работает Самокат и Мегамаркет. 

Например, наша команда решает задачу поиска оптимального расположения даркстора (место, где хранятся продукты, а также собираются заказы). Зона покрытия даркстора — радиус в пару километров, и количество их постоянно увеличивается. Мы хотим уметь размещать новый даркстор так, чтобы как можно больше людей получали заказы за минимальное время доставки.

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

Читать далее

Временные и постоянные ошибки

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.3K

При работе с внешними интеграциями мы часто реализуем базовую реакцию на ошибки. В большинстве случаев достаточно ограничиться response.raise_for_status(), а детальную обработку оставить на потом.

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

Что делать, когда сервер возвращает ошибку 503? А если превышен лимит запросов? А, допустим, истекло время ожидания и тому подобное? Мы неизбежно получаем длинный список исключений и обработчиков, которые необходимо реализовать, задокументировать и протестировать. Однако ситуацию можно улучшить…
Читать дальше →

PyCharm. Настройка и взаимодействие

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.6K

Привет хабр! В этой статье хочу рассказать, как сделать PyCharm удобнее и покажу пример настройки некоторых вспомогательных инструментов, встроенных в IDE.

Я уже давно работаю в этой IDE и меня все в ней устраивает, обилие горячих клавиш, UI, множество плагинов, гибкость, встроенные интеграции, но почти на каждом созвоне с коллегами, если они показывают демонстрацию экрана, оказывается, что они не знают о той или иной настройке, горячей клавише или плагине, которые значительно улучшили бы их пользовательский опыт. Именно поэтому, хочу поделиться и с вами некоторыми фишками.

Дисклеймер: В этой статье будет ряд изображений.

Читать далее

To Docker or not to Docker? Вот в чём JupyterLab

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.1K

Локальная работа в Jupyter-ноутбуках – неотъемлемая часть исследований и экспериментов нашего ML-отдела. Но из какой среды эти ноутбуки лучше запускать?
Мы пользуемся двумя вариантами: запуском из Docker-контейнера и запуском в изолированном локальном poetry-окружении.

В статье соберем минимальный сетап для работы с Jupyter-ноутбуками и ссылки на полезные ресурсы для ознакомления.

Читать далее

Гайд по Scikit-learn в 2025: собираем пайплайн, который не сломается

Уровень сложностиПростой
Время на прочтение30 мин
Количество просмотров6.9K

Scikit-learn — это одна из основных Python-библиотек для машинного обучения. Её подключают в прикладных проектах, AutoML-системах и учебных курсах — как базовый инструмент для работы с моделями. Даже если вы давно пишете с PyTorch или CatBoost, в задачах с табличными данными, скорее всего, всё ещё вызываете fit, predict, score — через sklearn.

В 2025 году в библиотеку добавили несколько важных обновлений: доработали работу с пайплайнами, подключили полную поддержку pandas API, упростили контроль за экспериментами.

Мы подготовили гайд, как работать со scikit-learn в 2025 году. Новичкам он поможет собрать первую ML-задачу — с данными, моделью и метриками. А тем, кто уже использует библиотеку, — освежить знания и понять, что изменилось в новых версиях.

Почитать гайд →

Ближайшие события

Секреты, которых не замечают студенты: что мы спрятали внутри курса по Python

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров6.4K

Если вы думаете, что на курсах по Python в Практикуме просто изучают синтаксис языка, решают задачки, а больше там нет ничего интересного, у меня для вас новость! 

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

И это не просто приколы ради приколов. Команда Яндекс Практикума и я, Евгений Бартенев, техлид и автор курсов по Python, хотели, чтобы курс ощущался не только как учебник, но и как игра. Чтобы внимательные студенты могли почувствовать, что находятся внутри чего-то большего. 

Мы вложили в этот курс душу. И теперь я хочу показать, что ещё скрыто за привычными строками текста и кода. Эта статья — ваш шанс заглянуть за кулисы процесса производства образовательного контента и стать одними из тех, кто видит и понимает больше. Поехали!

Читать далее

Вдохновился серией чёрного зеркала и сделал свой симулятор жизни

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров14K

В серии чёрного зеркала (7 сезон 4 серия) в основе сюжета как программист сделал симулятор в котором развивались виртуальные существа (Тронглеты). Решил от части повторить, что бы существом управлял агент ИИ.

Сделал симулятор, где в рандом сгенерированном мире появляется агент. У него есть показатели:
- голод
- жажда
- комфорт
- его цель
- мысли
- глобальная цель.
Он может взаимодействовать с миром, находить предметы, крафтить любые предметы, придумывать, что нашел. Даже если в разработке я не закладывал какие-то предметы, объекты или механики он может всё равно их «найти». Например, нашел тростник который в будущем использовал для создания тетивы для лука. Он сам подбирает эмодзи, название предмета, придумывает механику и кладет себе в инвентарь. Для упрощения сделал пошаговую симуляцию.
Начало промта выглядит вот так (полный промт больше в 10 раз):

Про механику мира и разработку. Скриптом создаем карту 20х20 клеток. На нее случайно раскидываем эмодзи 🍓🌳🦌⛰🕳. Агенту отправляется видимость клеток на 3 вокруг нет. Он может ходить только на одну клетку заход. Ещё агенту задаются состояния:

Что у него есть голод 0/100
Комфорт
Жажда
Инвентарь
Взаимодействовать с миром он может, убрать объект логически, добавить объект логически, добавить и убрать предмет в инвентарь. По сути больше ничего, дальше он сам должен существовать в этом мире. Нет ни рецептов крафта, не сколько съеденная ягода восстанавливает голода. Но много про то "где" он находится и как "выживать" в этом мире (без подсказок)
Начало промта выглядит так:

Читать далее

Мое автопротоколирование, начало создания полноценного сервиса

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.1K

Всем привет! В данной статье я поделюсь своим опытом написания сервиса. Я не являюсь опытным или профессиональным разработчиком, я пишу свой проект и мои решения могут быть не самыми оптимальными. Эта статья состоит в основном из ошибок, которые я совершил. Мой путь не является правильным и потому - судите "строго".

Читать далее

Почему Apache Spark становится ядром аналитических платформ в России: тренды, особенности и прогнозы для бизнеса

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.5K

Эксперты компании «Криптонит» проанализировали главные тренды использования Apache Spark в бизнесе, выделили особенности его применения в России и спрогнозировали дальнейшее развитие на основе выявленных тенденций.

Растущая востребованность Spark объясняется не только открытым исходным кодом и гибкостью, но и лёгкостью интеграции с современными технологиями — от машинного обучения до облачных платформ.

«В России Apache Spark становится не просто популярным фреймворком для обработки данных, а частью экосистемы отечественных решений в сфере Big Data. Особенно это касается объектов критической инфраструктуры, где всегда отдаётся предпочтение только самым надёжным и проверенным решениям», — пояснил Иван Попович, руководитель направления обработки данных компании «Криптонит».

Для критически важных отраслей (госуправление, финансы, энергетика) важна локализация данных и соответствие требованиям регуляторов.

«Открытый исходный код здесь играет ключевую роль, так как обеспечивает прозрачность и возможность тщательной верификации. Также он даёт уникальную возможность адаптировать решение под конкретные требования проекта. Хотя само по себе наличие открытого кода не является гарантией безопасности, Apache Spark за 15 лет своего развития доказал эффективность и надёжность в самых различных областях применения», — добавил эксперт.

В последние годы Spark проникает в новые сферы. Он всё активнее используется в агропромышленном комплексе, энергетике, нефтегазовой и химической отрасли. В основном его применяют для оптимизации производства, прогнозирования аварий и повышения энергоэффективности.

Читать далее

Как Python делает жизнь геймера проще: от Telegram-ботов до сортировки скриншотов

Время на прочтение4 мин
Количество просмотров5K

Компьютерные игры прошли громадный путь — от аркад 70-х до современных AAA-проектов, стоимость которых сопоставима с крупнейшими инженерными постройками. Геймдев — это не только искусство создания миров, но и многомиллиардная индустрия, где экономика играет ключевую роль.

Разработка AAA-игр требует бюджетов в десятки и сотни миллионов долларов, а рынок инди-игр и пользовательского контента ежегодно приносит миллионы благодаря платформам вроде Steam и моддинг-комьюнити. Моддеры, создавая дополнения для таких игр, как Skyrim или Minecraft, не только расширяют игровой опыт, но и формируют целые экосистемы с собственной экономикой: от донатов на Patreon до продаж модов. В этом мире Python становится всё более полезным инструментом — как для разработчиков, так и для продвинутых геймеров.

Читать далее

Как новичок пытался написать свой «терминал»

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.3K

Встроенная командная строка в Windows не устраивает многих разработчиков. У нее скудный функционал, нет «запоминания» и многих других функций, который были бы полезны её пользователям. Поэтому я решил попробовать сделать свою «консоль», с возможностью создания своих модулей для расширения функционала.

Для этого, на языке программирования Python я начал писать своё CLI‑приложение, которое упрощает работу с консолью. И что из этого вышло?

Узнать продолжение

Торговый робот без QUIK и Windows: мой путь к Raspberry Pi и Backtrader на Московской бирже

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.2K

В предыдущих статьях я рассказывал, как пришёл к идее создания собственного торгового робота. Мотивация проста:

✓ Автоматизация - алгоритм не спит, не нервничает и не занят своими делами.
✓ Дисциплина - робот исключает эмоции, следуя правилам.
✓ Тестирование - любую идею можно проверить на исторических данных, прежде чем рисковать деньгами.

Я всегда разделял два этапа: разработку торговых идей (логика стратегии) и реализацию механизма исполнения (отправка заявок, автотрейдинг). Сначала - бэктестинг и базовая оптимизация, и только потом - реальная торговля.

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

Разбираемся с 🤖

Вклад авторов