ru
Feedback
Zen of Python

Zen of Python

Открыть в Telegram

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

Больше

📈 Аналитический обзор Telegram-канала Zen of Python

Канал Zen of Python (@zen_of_python) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 18 953 подписчиков, занимая 6 786 место в категории Технологии и приложения и 34 781 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 18 953 подписчиков.

Согласно последним данным от 27 августа, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -157, а за последние 24 часа — 7, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 12.56%. В первые 24 часа после публикации контент обычно набирает 6.30% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 2 381 просмотров. В течение первых суток публикация набирает 1 195 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 5.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как github, rust, pip, api, install.

📝 Описание и контентная политика

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

Благодаря высокой частоте обновлений (последние данные получены 28 августа, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

18 953
Подписчики
+724 часа
-317 дней
-15730 день
Архив постов
Немного безумные способы определения функций Мы привыкли определять функции с помощью ключевого слова def. Однако Python как язык куда глубже и гибче, чем может показаться на первый взгляд. Существует несколько способов создать функцию — от практичных до откровенно абсурдных. Lambda-функции — минимализм в действии lambda позволяет создавать анонимные функции в одну строку. Это удобно, когда функция короткая и используется "на лету", например, в map() или filter(). Lambda-функции не могут содержать сложную логику или много выражений — только одно выражение, без return и вложенных блоков:

multiply_by_three = lambda x: x * 3
print(multiply_by_three(5)) 
Это удобно, но не стоит использовать lambda для сложной логики — теряется читаемость. functools.partial С помощью functools.partial можно создавать функции с уже предзаданными аргументами:

from functools import partial

def power(base, exponent):
    return base ** exponent

square = partial(power, exponent=2)
print(square(5))  # 25
Это очень удобно, если вы часто вызываете функцию с одними и теми же аргументами и не хотите писать обёртки. Декораторы Декораторы позволяют оборачивать функции и изменять их поведение — например, добавлять логирование, кэширование или даже модифицировать аргументы:

def print_result(fmt):
    def decorator(func):
        def wrapper(*args, **kwargs):
            result = func(*args, **kwargs)
            print(fmt.format(result))
            return result
        return wrapper
    return decorator

@print_result("Результат: {}")
def double(x):
    return x * 2

double(4)
Мощный инструмент, но при чрезмерном использовании может запутать читаемость кода. Классы с методом __call__ В Python можно сделать объект вызываемым, определив метод __call__. Таким образом, вы можете создавать функции как объекты с состоянием:

class Greeter:
    def __call__(self, name):
        print(f"Hello, {name}!")

greet = Greeter()
greet("Bob")
Бонус — можно хранить состояние внутри объекта, например, счётчик вызовов. exec() exec() выполняет строку как код Python. Да, вы можете определять функции с его помощью.

code = '''
def add(x):
    return x + 10
'''
exec(code)
print(add(5))  # 15
Этот способ может быть полезен для метапрограммирования, например, если нужно дать пользователю возможность писать код в аналитической панели. Но использовать его нужно с большой осторожностью из-за проблем безопасности и отладки. eval() eval() — ещё один способ выполнить строку кода, но только если это выражение, а не целый блок.

add = eval("lambda x: x + 10")
print(add(3))  # 13
Те же плюсы и минусы, что и у exec(). types.new_class С помощью types.new_class() можно создавать callable-объекты (через `__call__`) на лету.

import types

def class_body(ns):
    ns['__call__'] = lambda self, x: x * 2

DynamicFunction = types.new_class("DynamicFunction")
class_body(DynamicFunction.__dict__)
func = DynamicFunction()
print(func(6))  # 12
Это крайне экзотический способ, почти бесполезный в практике, но демонстрирует гибкость Python. #основы @zen_of_python

​​Разжигаем огонь... вашей страсти к Python Проект Kindling Projects предлагает начинающим программистам идеи для небольших проектов на Python, которые достаточно просты для освоения, но при этом позволяют развивать навыки и проявлять креативность. Сотни несложных утилит, игр, классических кодерских задач, клонов популярных сервисов и проч. #инструмент @zen_of_python

​​mutmut | Мутационные тесты Mutation Testing — это метод, при котором в ваш исходный код вносятся небольшие изменения (мутации), и затем запускаются ваши тесты. Цель: проверить, насколько эффективно тесты обнаруживают ошибки. Утилита вносит мутации в ваш код (на уровне исходников), запускает ваши юнит-тесты после каждой мутации. Затем помечает мутации: — ✅ Killed (тест поймал баг); — ❌ Survived (мутация выжила). Такое особенно важно, если вы работаете в сфере безопасности, финансов. Цена: бесплатно Репозиторий проекта #инструмент @zen_of_python

​​Вместо индусов ChatGPT / Cursor #кек @zen_of_python

​​Еще немного форсим питонов #кек @zen_of_python 🙈 — Если не ожидал такого в канале про ЯП

​​Очаровательные комиксы от дата-сайентиста Элисон Хорст #кек @prog_tools

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

​​Создаём микросервис по выгодному обмену крипты В статье вы узнаете, как создать микросервис, что анализирует предложения и подсказывает, где можно выгоднее обменять криптовалюту. Все это делается на Python, который делает запросы к API exnode.ru и сортирует результат по выгоде. Вы также увидите, как создается веб‑интерфейс + Telegram‑бот. #api @zen_of_python

Несколько способов ускорить ваш код. В реальных задачах — от обработки данных до веб-сервисов — скорость выполнения критична. Незаметные узкие места могут приводить к росту затрат на инфраструктуру и снижению качества обслуживания пользователей. Вашему вниманию эффективные способа ускорить Python — каждый из них помогает бороться с типичными источниками замедлений. tuple вместо list Кортежи неизменяемы: они создаются один раз, занимают фиксированную память и оптимизируются самим интерпретатором. Списки же — динамический тип: их память часто переранее выделяется, они имеют более сложную внутреннюю структуру. Поэтому когда структура фиксирована и не требуется изменять элементы — используйте кортеж. Это существенно сэкономит память, когда речь идёт о больших объёмах данных. set и dict вместо list при частых проверках и поисках — Поиск x in my_list — линейная операция (O(n)); — Проверка присутствия через my_set или my_dict — это хеш-таблица (O(1)); Если вам нужна частая проверка вхождений (фильтрация или поиск), выбирайте сет или словарь. Первый предпочтителен для уникальных элементов, второй — когда нужен быстрый доступ по ключу и хранение значений. Локальные переменные быстрее Переменные локальной области видимости читаются быстрее, чем глобальные — это из-за особенностей функционирования интерпретатора. В циклах и функциях выносите глобальные объекты как список, словарь в локальные переменные — это ускоряет многократные обращения. #основы @zen_of_python

​​bandit | Насколько защищен ваш проект? Инструмент найдет «секурные прорехи» в вашем проекте, включая запушенные ключи / токены и небезопасные участки кода. Внезапно проект OpenStack — опенсорсной облачной инициативы NASA. Репозиторий проекта #инструмент @zen_of_python

Новый инструмент для отладки асинхронных процессов С выходом Python 3.14 beta 2 появился новый CLI-инструмент для инспекции асинхронных задач:

python -m asyncio ps 12345        # Табличный список задач для процесса с PID 12345
python -m asyncio pstree 12345    # Древовидное отображение взаимозависимых корутин
Команда выводит табличный список активных корутин с их именами, стеком и зависимостями. Сферы применения — Telegram-боты; — aiohttp и другие HTTP-серверах; — await‑запросы к БД. Теперь нет нужды вставлять логи или использовать профайлеры — диагностика идет вживую и позволит увидеть: — какие запросы обрабатываются дольше всего; — какие «вешают» бота; — какие запросы ожидают своей очереди. Документация #факт @zen_of_python

whatsonpypi | Ускоряем обновление зависимостей Если при обновлении библиотек проекта вам неохота каждый раз посещать pypi.org, с помощью этой утилиты вы сможете вывести данные о крайней версии и совместимости с Python прямо в командную строку. Репозиторий проекта #инструмент @zen_of_python

​​Опрос про роль ИИ в вашей работе Редакция Tproger проводит регулярное исследование об отношении айтишников к Искусственному интеллекту. Это небольшая анкета займет не более 5 минут, но очень поможет прояснить отношение разных групп к AI. Результатами обязательно поделимся. #опрос @zen_of_python

Repost from Код найма
Хватит искать работу в одиночку! Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не н
Хватит искать работу в одиночку! Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не навыки, а кейворды, десятки собеседований и постоянный стресс. Знакомо? Всё это выматывает и демотивирует. Мы тебя понимаем — и готовы поддержать! Команда Tproger открывает первое реалити-шоу в Телеграм о поиске работы — «Код найма». Вместе с опытными менторами ты пройдешь все этапы найма: ➡️ Прокачаешь резюме так, чтобы его заметили ➡️ Научишься проходить собеседования без волнения ➡️ Получишь честную обратную связь от рекрутеров ➡️ И, главное, дойдёшь до оффера в компании мечты! Весь путь будет проходить на глазах у подписчиков канала — они тоже смогут давать советы и поддерживать тебя. Хочешь стать героем нашего реалити и получить шанс найти работу мечты? ✍️ Заполняй анкету Мы выберем трёх участников, которым поможем пройти весь путь до оффера. Присоединяйся к «Коду найма» — и пусть твой следующий оффер станет началом новой жизни!

Лаконичная шпора из 12 базовых команд GIT на русском 🙂 Кратко, по делу, без лишнего — самые нужные команды для повседневной
Лаконичная шпора из 12 базовых команд GIT на русском 🙂 Кратко, по делу, без лишнего — самые нужные команды для повседневной работы с репозиторием. А если нужна более расширенная подборка — загляните в наш прошлый чит-лист. Возможно даже откроете для себя что-то новое

Краткий гайд про хэши для новичков Хеширование — это фундаментальная концепция в Computer Science. В основе лежит идея односторонней функции, которая принимает на вход данные произвольного размера и возвращает выход фиксированной длины. Эта функция преобразует любые данные — будь то строка, число или файл — в уникальное значение фиксированной длины, называемое хешем. Это значение представляет собой последовательность битов, которая служит своего рода «отпечатком пальца» для исходных данных:

import hashlib

hash = hashlib.sha256()
hash.update(b'hello')
hashed_string = hash.hexdigest()

print(hashed_string) # 2cf24d......8b9824
Зачем это нужно — Проверка «девственности» передаваемых данных: при передаче данных по сети важно убедиться, что они не были изменены. Хеширование позволяет создать контрольную сумму, которая может быть использована для проверки целостности данных; — Хранение паролей: вместо хранения паролей в открытом виде их точно стоит обезопасить хешами; — Хеширование используется для создания цифровых подписей, которые подтверждают подлинность и целостность сообщений или документов. Многие из вас сталкивались с SSH-ключами для Git-репозиториев, причем с разными алгоритмами: MD5, SHA256. В отдельном посте поговорим об алгоритмах шифрования вроде RSA. Когда мы создаем пару ключей (приватный + публичный), например с помощью:

ssh-keygen -t rsa -b 4096
То получаем приватный ключ, что хранится на локальной машине и используется для аутентификации. Также мы получаем публичный ключ и загружаем его на GitHub. Он не использует хеши для хранения или проверки самих публичных ключей, они проверяются напрямую, при помощи криптографических протоколов. Но вот где вступает в дело хеш: GitHub (и SSH-клиенты в целом) используют хеши не для безопасности, а для удобной идентификации. Когда мы смотрим отпечаток ключа, например:

ssh-keygen -lf ~/.ssh/id_rsa.pub
То получаем:
2048 SHA256:2f3b7A5Nk...xyz username@host (RSA)
Это и есть отпечаток ключа (fingerprint) — хеш публичного ключа. Он используется для подтверждения подлинности ключа. #основы @zen_of_python

FlareSolverr | Обходим турникет Cloudflare Фактически эта библиотека обеспечивает вас прокси-сервером для обхода антибот-защиты. Когда приходит запрос, она использует Selenium с undetected-chromedriver для открытия вкладки Chrome. URL с параметрами пользователя открывается, задача Cloudflare решается (или истекает время ожидания). Посмотрим, сколько времени у CF уйдет на «компенсацию» такого «эксплойта». Цена: бесплатно Репозиторий проекта #инструмент @zen_of_python

Repost from IT Юмор
А если ты путешествуешь во времени и прилетел в ДРУГОЙ ЧАСОВОЙ ПОЯС??? 😎 — ненавижу их (часовые пояса) 😈 — ничего сложно в
А если ты путешествуешь во времени и прилетел в ДРУГОЙ ЧАСОВОЙ ПОЯС??? 😎 — ненавижу их (часовые пояса) 😈 — ничего сложно в них нет 💯 — мне индифферентно @ithumor