en
Feedback
Zen of Python

Zen of Python

Open in Telegram

Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Show more

📈 Analytical overview of Telegram channel Zen of Python

Channel Zen of Python (@zen_of_python) in the Russian language segment is an active participant. Currently, the community unites 19 290 subscribers, ranking 6 972 in the Technologies & Applications category and 35 079 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 19 290 subscribers.

According to the latest data from 05 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 26 over the last 30 days and by -3 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 12.34%. Within the first 24 hours after publication, content typically collects 5.62% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 378 views. Within the first day, a publication typically gains 1 082 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 9.
  • Thematic interests: Content is focused on key topics such as github, rust, pip, api, install.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Thanks to the high frequency of updates (latest data received on 06 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

19 290
Subscribers
-324 hours
+137 days
+2630 days
Posts Archive
Новый синтаксис Python от Grok #кек @zen_of_python
Новый синтаксис Python от Grok #кек @zen_of_python

Всем тимлидам, разработчикам, тестировщикам и админам! Счастливого Дня программиста! Желаем вам всегда зелёных билдов, отзывч
Всем тимлидам, разработчикам, тестировщикам и админам! Счастливого Дня программиста! Желаем вам всегда зелёных билдов, отзывчивых кластеров и тихих дежурных смен. Пусть ваши логи будут чисты от ошибок, а мониторинг предупреждает о проблемах раньше, чем о них узнают пользователи. И чтобы пожелание точно сбылось, обязательно воспользуйтесь подарками из нашей IT-коробки. Готовили с любовью в сердце вместе с нашими друзьями. С праздником!

Вопросы подписчиков Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает: — Спрашивайте
Вопросы подписчиков Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает: — Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов! — Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте. #обсуждение @zen_of_python

alive-progress | Шкала прогресса в CLI Библиотека, предназначенная для создания динамичных индикаторов прогресса в CLI. Среди фичей: — плавная анимация спиннера; — точный расчет оставшегося времени с использованием алгоритма экспоненциального сглаживания; —хуки для логирования. #инструмент #dataviz @zen_of_python

Зовём на 2ХАКАТОН от 2ГИС 4–5 октября, офлайн, Москва Два дня, чтобы общаться, кодить, вдохновляться и менять городские сервисы к лучшему! Три трека: городские данные с ЦОДД, инклюзия с фондами «Антон тут рядом», «Продвижение», «ЛизаАлерт» и носимые устройства — часы, браслеты, AR и другие гаджеты. Призовой фонд: 1 000 000 рублей и шанс, что проект попадёт прямо в 2ГИС! Регистрируйся с командой от 3 до 6 человек или соло — поможем найти команду в чате! #Реклама О Рекламодателе

​​Hypothesis подумает о пограничных случаях за вас Библиотека property-based тестирования, где вместо ручного набора тест-кейсов вы описываете свойства, которым должен соответствовать код, а разнообразные данные генерируются и проверяются автоматически, включая граничные случаи. При обнаружении сбоя Hypothesis не просто сигнализирует об ошибке — он возвращает наиболее простой пример, приводящий к сбою, что значительно облегчает отладку. #инструмент @zen_of_python

​​Вопрос подписчика Задает @mozmoroz: «Какие платные курсы с куратором можете посоветовать по питону для получения базы знаний с пониманием что такое питон и цикл if? Возраст 15 лет» NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике. #обсуждение @zen_of_python

Альфа-Банк приглашает IT-специалистов на турнир по спортивному хакингу AlfaCTF — он пройдёт 13-14 сентября Разработчики, тест
Альфа-Банк приглашает IT-специалистов на турнир по спортивному хакингу AlfaCTF — он пройдёт 13-14 сентября Разработчики, тестировщики и аналитики будут решать таски: взламывать, находить уязвимости, собирать флаги и бороться за звание лучшего хакера. 🤓🤓🤓🤓🤓🤓🤓🤓 🤓🤓🤓🤓🤓🤓🤓🤓 🤓🤓🤓🤓🤓🤓🤓🤓 🤓🤓🤓🤓🤓🤓🤓🤓 🤓🤓🤓🤓🤓🤓🤓🤓 🤓🤓🤓🤓🤓🤓🤓🤓 🤓🤓🤓🤓🤓🤓🤓🤓 Всего три уровня сложности, есть и простой для студентов. Команды-победители получат до 450 тысяч рублей. Собрать команду и зарегаться нужно на сайте. Для разминки найдите баг на картинке: Это #партнёрский пост

Этот код демонстрирует: 🔘 короткое замыкание (401 и 429 останавливают конвейер); 🔘 прохождение запроса дальше при None; 🔘 терминальный обработчик 404. Политики прохождения запроса 🔘 Short-circuit (рекомендуется по умолчанию): первый, кто вернул результат, «закрывает» цепочку; 🔘 Fall-through: все обработчики обязаны отработать (например, аудит/метрики/логирование), результат — агрегация; 🔘 Микс: часть «жёстких» (аутентификация, лимиты) — short-circuit; «мягкие» (логирование) — всегда проходят. #основы @zen_of_python

Цепочка обязанностей Цепочка обязанностей (Chain of Responsibility, CoR) — поведенческий паттерн, который пропускает запрос через последовательность обработчиков, пока один из них не возьмётся за дело (или пока цепочка не закончится). Этот подход «развязывает» отправителя и получателей запроса: отправителю не нужно знать, кто именно обработает задачу, а обработчики остаются взаимозаменяемыми и настраиваемыми в рантайме. Используйте CoR, если: 🔘 обработка запроса может зависеть от набора условий/правил, которые меняются со временем; 🔘 нужно включать / выключать шаги обработки без переписывания вызвавшего кода; 🔘 часть запросов может обрабатываться на ранних шагах, а остальные — «прокатываться» дальше; 🔘 вы строите конвейер: фильтры, middleware, валидаторы, пост-обработчики. Минимальный состав паттерна 🔘 Handler (интерфейс / абстракция): объявляет метод handle(request) и хранит ссылку на «следующего»; 🔘 ConcreteHandler: решает, обрабатывать ли запрос, либо передаёт дальше; 🔘 Client: строит цепочку и отправляет запрос первому звену. Пример

from __future__ import annotations
from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import Optional, Any, Callable


class Handler(ABC):
    def __init__(self, nxt: Optional["Handler"] = None):
        self._next = nxt

    def set_next(self, nxt: "Handler") -> "Handler":
        self._next = nxt
        return nxt  # позволяет строить цепочку «в линию»

    def handle(self, request: Any) -> Any:
        # Базовая реализация: попытаться обработать здесь,
        # иначе передать дальше.
        result = self._handle_here(request)
        if result is not None:
            return result
        if self._next:
            return self._next.handle(request)
        return None  # никто не справился

    @abstractmethod
    def _handle_here(self, request: Any) -> Optional[Any]:
        ...


@dataclass
class HttpRequest:
    path: str
    headers: dict
    user_id: Optional[int] = None
    payload: Optional[dict] = None


class AuthHandler(Handler):
    def _handle_here(self, req: HttpRequest) -> Optional[Any]:
        token = req.headers.get("Authorization")
        if not token:
            # Нет токена — «решение на месте»: отклоняем и НЕ передаём дальше
            return {"status": 401, "message": "Unauthorized"}
        # валидируем (упростим) и ставим идентификатор
        req.user_id = 42
        return None  # пропускаем дальше


class RateLimitHandler(Handler):
    def __init__(self, check: Callable[[HttpRequest], bool], nxt: Optional[Handler] = None):
        super().__init__(nxt)
        self.check = check

    def _handle_here(self, req: HttpRequest) -> Optional[Any]:
        if not self.check(req):
            return {"status": 429, "message": "Too Many Requests"}
        return None


class RouterHandler(Handler):
    def _handle_here(self, req: HttpRequest) -> Optional[Any]:
        if req.path == "/me" and req.user_id:
            return {"status": 200, "data": {"id": req.user_id}}
        if req.path == "/ping":
            return {"status": 200, "data": "pong"}
        # Не мой маршрут — пропускаю дальше (если есть)
        return None


class NotFoundHandler(Handler):
    def _handle_here(self, req: HttpRequest) -> Optional[Any]:
        # Терминальный обработчик: если дошли сюда — 404
        return {"status": 404, "message": f"Route {req.path} not found"}


# Сборка цепочки
def build_pipeline() -> Handler:
    auth = AuthHandler()
    rate = RateLimitHandler(check=lambda r: True)
    router = RouterHandler()
    notfound = NotFoundHandler()

    auth.set_next(rate).set_next(router).set_next(notfound)
    return auth


if __name__ == "__main__":
    pipeline = build_pipeline()
    print(pipeline.handle(HttpRequest(path="/ping", headers={"Authorization": "Bearer x"})))
    print(pipeline.handle(HttpRequest(path="/me", headers={"Authorization": "ok"})))
    print(pipeline.handle(HttpRequest(path="/unknown", headers={"Authorization": "ok"})))
    print(pipeline.handle(HttpRequest(path="/ping", headers={})))

CodeViz: бесплатное дополнение для VS Code, превращающее код в интерактивную карту 😬 Плагин строит визуальную структурированную карту вашего кода прямо в IDE. Можно наглядно увидеть архитектуру проекта, связи между файлами и понять его суть. Поддерживается масса яп, всё работает быстро и абсолютно бесплатно. Сохраняйте.

AI Journey Contest 2025: Брось вызов задачам уровня профи в мире ИИ! Участвуй в международном онлайн-соревновании по ИИ и пол
AI Journey Contest 2025: Брось вызов задачам уровня профи в мире ИИ!   Участвуй в международном онлайн-соревновании по ИИ и получи возможность побороться за денежный приз! Призовой фонд — 6,5 млн рублей!   Выбери один или несколько треков: • Agent-as-Judge — универсальный «судья», способный оценивать ИИ-тексты.   • Human-centered AI Assistant — персонализированный ассистент на основе GigaChat, имитирующий поведение людей и способный предугадать их предпочтения. Бонус: Участникам предоставляются токены для API + возможность получить дополнительно 1 млн токенов!   • GigaMemory — механизм долговременной памяти для LLM, помогающий ассистенту запоминать и использовать важные факты в диалоге.   Не упусти возможность не только прокачать свои скиллы, получить заветную строчку в списке своих достижений и выиграть солидный приз, но и заявить о себе на AI Journey — главной международной конференции по ИИ в России!   Соревнование проходит до 30 октября. Регистрируйся и участвуй Это #партнёрский пост

Вопрос подписчика Задает @StSav012: «Предлагаю задачку на алгоритм. Для данных n ∈ ℕ и чётного N ≥ n > 1, N ∈ ℕ, найти чётное ñ, ближайшее к n, являющееся делителем N. Если таких чисел несколько, выбрать наибольшее.Конечно, хочется скорость O(log(n)).

def find_closest_even_divisor(n: int, max_n: int) -> int:
    """
    For given n ∈ ℕ and an even N ≥ n, N ∈ ℕ,
    find an even ñ closest to n so that ñ is a divisor of N.

    If there are several such numbers, pick the largest one.
    """

    if max_n <= 0:
        raise ValueError(f"There are no positive divisors for {max_n}")
    if max_n & 1:
        raise ValueError(f"There are no even divisors for {max_n}, which is odd")

    if n > 0.75 * max_n:
        return max_n

    if max_n % n == 0 and n & 1 == 0:
        return n

    divisors: list[int] = []
    dd: int = 1
    while max_n > 1 and max_n & 1 == 0:
        max_n >>= 1
        dd <<= 1
        divisors.append(dd)

    d: int = 3
    dc: list[int]
    while max_n > 1:
        dc = []
        dd = 1
        while max_n % d == 0:
            max_n //= d
            dd *= d
            dc.append(dd)
        else:
            if dc:
                divisors += [divisor * dd for divisor in divisors for dd in dc]
            if d < isqrt(max_n) and d < 2 * n:
                d += 2
            else:
                break

    return min(divisors, key=lambda _d: (abs(n - _d), -_d))
Что ещё можно ускорить?» NB! Пожалуйста, будьте взаимовежливы. Однажды и вам помогут в этой рубрике. #обсуждение @zen_of_python

​​Как сеньоры документируют проекты: протокол архитектурных решений В статье рассказывается, как сеньоры применяют ADR (Architectural Decision Record — протокол архитектурных решений), чтобы документировать важные архитектурные изменения, их причины и последствия. ADR помогает сохранять логику принятия решений, избегать повторений ошибок и облегчает командную работу, особенно для новых участников. Автор сравнивает такой протокол с «личным дневником, но для всей команды», подчеркивая его пользу в будущем: спустя время возвращаться к архитектурным мотивам становится гораздо проще. #основы @zen_of_python 💅 — Если применяешь такое

Самое время собрать свою команду из IT-акул: Открыта регистрация на самый масштабный онлайн-хакатон в мире — «Лидеры цифровой
Самое время собрать свою команду из IT-акул: Открыта регистрация на самый масштабный онлайн-хакатон в мире — «Лидеры цифровой трансформации»! ⚡️40 млн рублей призового фонда: — 1 млн рублей — для тех, кто займёт первое место — 600 тысяч — второе — 400 тысяч — третье 20 актуальных задач от ведущих компаний страны: Газпромбанк.Тех, VK Tech, Kaspersky, АФЛТ-Системс (Группа «Аэрофлот»), Союзмультфильм, Авито, Итэлма, ОЭЗ «Алабуга», Х5. 14 дней на разработку решений. Призёрами хакатона станут 60 команд! Принять участие могут: 🔘граждане РФ и других стран от 18 лет 🔘специалисты: Front / Back / FullStack, Web-разработчики, UX / UI дизайнеры, Product / Project-менеджеры, Data Scientists, Data Engineers, аналитики и другие профессионалы 🔘местоположение — неважно, всё проходит онлайн Других ограничений нет! 📎 Успейте зарегистрироваться до 18 сентября! А больше новостей и подробностей — на нашем канале, подписывайтесь. Это #партнёрский пост

Шпаргалка NumPy Удобная шпаргалка, чтобы основные функции и методы этой ключевой «вычисляющей» библиотеки были под рукой. В ней собраны разделы вроде Creating Arrays, где показано, как создавать массивы разных типов и форм, Array Mathematics — с примерами арифметических операций, и Subsetting, Slicing, Indexing для работы с выборками. Есть также блоки про манипуляции с массивами, объединение, разбиение и сохранение данных. #шпаргалка @zen_of_python

​​Google Image Scraper | Массовый парсинг картинок из Google Тул помогает собирать сотни изображений для любой вашей цель — будь то ML-датасет, дизайн или что-то еще. При запуске указывае ключевые слова, количество файлов и параметры — и скрипт автоматически выгрузит нужные фото в нужном разрешении. Поддерживает работу в headless-режиме, гибкую настройку качества и параллельные загрузки. Цена: бесплатно #инструмент @zen_of_python

​​crewAI | Оркестрируемые GPT Зарубежные мечтатели неутомимо хотят слить всю работу на ИИ... На сей раз создали этакий «командный пост» для ваших нейронок вроде ChatGPT, Claude, Grok и прочих. Смысл в том, что доля портаков значительно сокращается, если LLM «судят» ответы друг друга. Даже вводят термин «гиперагент». Тул добился звания «Репозиторий дня» на GitHub, а это уже немало! Доступен в РФ: да Цена: бесплатно

Old but gold #кек @zen_of_python
Old but gold #кек @zen_of_python