Обновить
796.93

Python *

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

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

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

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

Дескрипторы — одна из тех фич Python, о которых многие слышали, но мало кто использует напрямую. При этом они лежат в основе @property, @classmethod, @staticmethod, слотов и даже обычного доступа к методам.

Разберём, что такое дескрипторы, как их писать и когда они реально полезны.

Понять механизм

Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

Время на прочтение16 мин
Охват и читатели11K

Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

Читать далее

Магия itertools: Перестаньте писать велосипеды на циклах for

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели14K

Почему опытные Python-разработчики редко используют циклы for для обработки данных? Потому что императивный стиль на больших объемах данных ведет к исчерпанию памяти (OOM) и замедлению работы.

Модуль itertools — это стандарт индустрии для создания эффективных конвейеров обработки данных. Он реализует концепцию ленивых вычислений (lazy evaluation), позволяя обрабатывать бесконечные потоки или огромные дампы БД, потребляя константный объем RAM.

Читать далее

ООП в Python на пальцах: Пишем свою текстовую RPG с нуля

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели14K

Как объяснить новичку разницу между Классом и Объектом так, чтобы он запомнил это навсегда? Представить, что Класс — это чертеж робота, а Объект — сам робот.

В этой статье я раскладываю принципы ООП (Объектно-Ориентированного Программирования) на понятные атомы. Никакой сухой академической теории — только живой код на Python. Мы пройдем путь от простых переменных до масштабируемой системы классов на примере создания RPG-игры. В конце вас ждет домашнее задание для закрепления материала.

Читать далее

Всегда короткий Python-код

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

Не так давно довелось спонтанно поучаствовать в активности от T‑банка. Кроме всяких «интересных» заданий, там были задачки и на кодинг. Критерием победы в задачах «Стековки» были не O(n), не микросекунды, а краткость кода, твёрдо измеренная в символах, что тоже по своему интересно. «Как написать решение используя минимальное число символов?».

С одной стороны это были задания на компактный алгоритм, с другой стороны — на знания возможностей языка. Я к такому родам задачам не готовился, но по ходу дела мне показалось, что приёмы, которые можно придуматьприменить при таких метриках, вполне стоило бы обобщить, структурировать, и применять уже с меньшими когнитивными нагрузками. Заинтересовало? Добро пожаловать за странными конструкциями и хацкер-бонусом.

Разжать статью

Делаем LLM-советника по акциям РФ как в Alfa Arena

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

Недавно стартовал необычный эксперимент — Alfa Arena, где шесть лучших LLM моделей (Claude 4.5 Sonnet, DeepSeek V3.1, Gemini 2.5 Pro, GPT-5, Grok 4 и Qwen 3 Max) соревнуются между собой в реальном трейдинге. Каждой модели дали по $10,000, и они торгуют криптой на бирже.

Что особенно интересно — это не просто шоу. Alfa Arena показывает принципиально новый подход в трейдинге. И хоть любопытно следить за тем, какая модель заработает больше денег или кто первый сольет, но настоящая ценность эксперимента совсем в другом.

Читать далее

Thefittest: зачем я пишу свою open-source библиотеку эволюционных алгоритмов

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

Автор: Шерстнев Павел

Что если модель могла бы проектировать саму себя? Подбирать архитектуру, параметры, операторы — без эксперта, без ручного тюнинга и десятков итераций? Эволюционные алгоритмы позволяют это сделать. Я собрал их в рабочую технологию — Thefittest — open-source проект, где эволюция используется для построения и оптимизации моделей машинного обучения.

Читать далее

Практическое тестирование приложений на python

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8.7K

Всем привет! Эта статья — продолжение материала про универсальный прототип бэкенд-приложений. В ней я поделюсь практическим опытом написания тестов и покажу, как выбранная архитектура упрощает этот процесс.

Ну что ж, приступим

Разработка MCP-сервера на примере CRUD операций

Время на прочтение10 мин
Охват и читатели12K

Model Context Protocol (MCP) — это единый стандарт разработки API для сервисов, с которыми могут взаимодействовать LLM.

В этой статье на простом примере разберем, как создать свой MCP-сервер и как использовать его в связке с LLM.

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля

Читать далее

AI Review кода за 30 минут: локальная LLM прямо в CI/CD

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

Как за полчаса подключить автоматическое ревью кода с помощью AI Review и локальной LLM Ollama прямо в CI/CD — без токенов и VPN.

Читать далее

Паттерны программирования при работе с LLM

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

LLM - мощный инструмент, но его эффективность в продакшене зависит не от одного «хитрого промпта», а от всей архитектуры: что мы даём модели, как управляем её рассуждением и как проверяем/обрабатываем результат. В этой статье - компактная карта паттернов, разбитая по этапам конвейера: Input -> Reasoning -> Output.

Читать далее

Прокачиваем RAG: тестируем техники и считаем их эффективность. Часть 1

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели24K

При про­ектировании RAG-системы инженер каждый раз сталкивается со множеством вопросов: какую базу данных использовать, как организовать получение релевантной информации, да даже выбор эмбеддера может занять приличное время, а это лишь вершина айсберга. Что хорошо работает в одной сфере, например в техподдержке, может полностью провалиться в другой — например, при анализе юридических документов. Поэтому задачей инженера является выявление особенностей предметной области и адаптации RAG системы к ним. Однако, чтобы это сделать, необходимо не только понимать, какие приёмы можно использовать, но и знать насколько они эффективны.

В данной статье мы разберём основные RAG техники, посмотрим их сильные и слабые стороны, сферы применения, а также немного поэкспериментируем. В следующей части статьи мы проведём тестирование этих техник на реальных пользовательских запросах из датасета Natural Questions и оценим качество работы с помощью RAGAS и BertScore, посмотрим на графики и разойдёмся, чтобы обдумать всё написанное. Поэтому предлагаю начать!

Читать далее

Паттерны проектирования в Python, о которых следует забыть. Часть вторая

Время на прочтение9 мин
Охват и читатели19K

С тех пор, как «банда четырёх» ещё в 90-е выпустила свою легендарную книгу «Паттерны объектно-ориентированного проектирования», сами «паттерны проектирования» стали краеугольным камнем всевозможных рассуждений о программной архитектуре. Однако, со временем этот термин становится всё более размытым. Сегодня при упоминании паттернов может иметься в виду:

Назначение этого паттерна: та проблема, для решения которой он предназначен Реализация: точная структура класса или код для воплощения этого паттерна

Рассказывая о «паттернах проектирования в Python, о которых следует забыть», мы имеем в виду как раз реализации. В самом деле, эти паттерны решают реальные задачи. Но в Python решение этих задач ничуть не напоминает те варианты, которые предлагаются на C++ или Java.

Держа в уме эту идею, делаем простой вывод:

Мишка учится лазать по деревьям, чтобы добраться до мёда. Но орлы никуда не лазают, они летают.

Читать далее

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

Основы ETL на примере работы с Superset, Airflow и ClickHouse

Время на прочтение39 мин
Охват и читатели21K

В этой статье я расскажу, как можно запустить простой ETL-процесс на виртуальном сервере, используя связку Superset, Airflow и ClickHouse. В качестве платформы я взял готовую конфигурацию от Beget, включающую Superset и Airflow из коробки — это позволяет сосредоточиться на логике обработки данных, а не на настройке окружения.

В качестве примера мы подготовим процесс выгрузки и визуализации данных о товарах с сайта Wildberries.

Для извлечения данных мы будем использовать Python-библиотеки selenium и BeautifulSoup — они хорошо подходят для парсинга веб-страниц. Дополнительно применим re для обработки текстовой информации с помощью регулярных выражений.

Читать далее

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

Уровень сложностиПростой
Время на прочтение40 мин
Охват и читатели145K

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

Что будет, если заинлайнить всё

Время на прочтение25 мин
Охват и читатели22K

Усаживайтесь поудобнее, ребята! Сегодня мы с вами разберём следующий увлекательный вопрос: что будет, если заинлайнить вообще всё?

Если вы пока не знакомы с техникой встраивания (inlining) то примите к сведению, что в сообществе специалистов по разработке компиляторов многие, в том числе очень авторитетные фигуры (например, Чендлер Каррут) считают этот приём наиважнейшим при оптимизации компиляторов. Подробнее о том, как устроено встраивание, рассказано здесь — мы беззастенчиво хвалимся той презентацией, с которой выступили перед участниками конференции LLVM Developers' Meeting по межпроцедурной оптимизации. Я рассказывал о встраивании и очень рекомендую вам посмотреть хотя бы первые 6 минут. В этом видео я рассказываю, почему встраивание — очень простое преобразование, а вот тут вашему вниманию предлагается реализация встраивания, предложенная великим Крисом Латтнером уже около 20 лет назад — в ней всего около 200 строк кода. К сожалению, сегодня даже само преобразование пропорционально выросло: в качестве примера взгляните хотя бы на InlineFunction.cpp.

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

Читать далее

Как одной математической формулой определить цвет ячейки на рулетке?

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

Однажды моя девушка проходила курс по основам python. Она показала мне небольшую задачку на использование if-else: "по номеру кармана (ячейки) на рулетке определите его цвет".

Казалось бы, все довольно просто — используем условные операторы и не знаем проблем! Но можно ли вывести математическую формулу которая будет работать для всех ячеек? В этой статье я описал поиски такой формулы!

Читать далее

Обучаемся основам компьютерного зрения с помощью Lichee Pi 4A и Python-библиотеки Pillow

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.6K

Привет, Хабр! На связи команда регионального научно-образовательного центра «Искусственный интеллект и анализ больших данных» при НГТУ им. Р. Е. Алексеева. При поддержке компании YADRO мы изучаем архитектуру RISC-V и компьютерное зрение, чтобы внедрить результаты в учебный процесс.

Предлагаем вместе с нами проверить, на что способен одноплатный компьютер Lichee Pi 4A в задачах обработки изображений, несмотря на его ограниченные ресурсы. А заодно — получить базовые навыки по разработке систем компьютерного зрения. Пройдем путь от настройки системы до отслеживания кликов по картинке и распознавания объектов с моделью YOLOX.

Читать далее

Первый год free-threaded Python

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

На прошлой неделе разработчики CPython выпустили CPython 3.14.0b1. А на этой неделе в Питтсбурге, штат Пенсильвания, начинается конференция PyCon 2025. Оба эти события знаменуют собой важную веху в делах, связанных с разработкой, выпуском и доведением до стабильного состояния релизов free-threaded Python (Python с поддержкой свободной многопоточности — с отключённым механизмом GIL).

Перед вами рассказ о первом годе развития этого проекта, и о той роли, которую мы, сотрудники Quansight, в нём сыграли. А именно, речь идёт о том, что мы обеспечили возможность экспериментального использования сборок Python с поддержкой свободной многопоточности. Применялись они в реальных продакшн-системах, поддерживая процессы, которые основаны на сложных наборах зависимостей.

Читать далее

Распознавание орхоно-енисейских рунических надписей методами машинного обучения

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

Орхоно-енисейские руны — это древнейшая система письма тюркских народов, использовавшаяся с VI по X век на территории Центральной Азии (включая современную Монголию, южную Сибирь и часть Казахстана). Это были надгробные и памятные тексты, выбитые на камне. Они отражают политические, военные и культурные события тюркских племён. Их расшифровка началась во второй половине XIX века и остаётся предметом научных исследований и дискуссий. Исследование символов рунической письменности актуально, так как может помочь в понимании истории и культуры народов этой местности. Интерпретация енисейских надписей с памятников – очень сложная задача. Каменная поверхность разрушена временем, из-за чего символы могут быть плохо различимы. Многие памятники находятся в удаленных, диких местах, где долгий процесс исследования слишком трудозатратен. По этой причине надписи с памятников переносятся на бумажные или цифровые носители для последующей расшифровки. Как отмечал Кормушин И. В. – профессор филологии, тюрколог и алтаевед, перед чтением надписей, необходимо идентифицировать ее символы отдельным этапом. Эта ручная обработка надписей с памятников осложнена не только деформацией самих памятников, но и отсутствием строгой определенности с принадлежностью символов к тому или иному алфавиту. Достаточно распространенной оказалась проблема неточного определения состава рунических символов во многих изданиях XX века. Эти неточности приводят к ошибкам чтения и перевода древних текстов. Поэтому целесообразно автоматизировать этот процесс для повышения точности и скорости определения символов.

Читать далее