ar
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

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Zen of Python

تُعد قناة Zen of Python (@zen_of_python) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 18 957 مشتركاً، محتلاً المرتبة 6 786 في فئة التكنولوجيات والتطبيقات والمرتبة 34 781 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 18 957 مشتركاً.

بحسب آخر البيانات بتاريخ 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 957
المشتركون
+724 ساعات
-317 أيام
-15730 أيام
أرشيف المشاركات
​​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

Google Gemini разочаровался в себе и... предложил заплатить разработчику за баг Во время переписки ИИ от Google честно призна
Google Gemini разочаровался в себе и... предложил заплатить разработчику за баг Во время переписки ИИ от Google честно признался: «Мои знания устарели, я только мешаю». При этом он предложил пользователю оплатить услуги настоящего программиста для решения проблем. Причиной стали вечные конфликты Vite, Tailwind и PostCSS, в которых Gemini окончательно запутался. Вместо решения — депрессия и предложение нанять «кожаного программиста». Ну что, работяги — можем спать спокойно? Никакой ИИ нас пока что не заменит @your_tech

Придумайте подпись к видео так, чтобы это относилось к Python-разработке #обсуждение @zen_of_python

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

Зацените как похорошели транскрибации при Войси! Вайб-кодинг вайб-кодингом, но как же не хватает простого человеческого «расш
Зацените как похорошели транскрибации при Войси! Вайб-кодинг вайб-кодингом, но как же не хватает простого человеческого «расшифруй мне созвон, только качественно!!». С этим вам поможет Войси. 🤯Этот ИИ-агент может с легкостью сделать из созвона текст, подвести итоги встречи и составить саммари. Войси переводит с 54 языков на русский без всяких артефактов и составляет текст в аккуратные абзацы с выделенными тезисами. Самое удобное, что далеко ходить не надо — всё это делается прямо в «телеге». Экономьте своё время, превращая часы в минуты. 🔥А новичкам доступны 1,5 часа бесплатной транскрибации. Забирайте: https://tprg.ru/9xQo

​​job-hunter | Для цифровых кочевников Один энтузиаст создал трекер вакансий на удаленке, который ищет среди работных сайтов вроде GitHub, WorkingNomads и Remote.io подходящие объявления и высылает находки Telegram-ботом. Есть фильтрация по тегам. Если вам хочется поупражняться — форкайте и дописывайте под HH. #пет-проект @zen_of_python

opendota2-vision | Ищем «смурфов» в Dota Энтузиаст запилил проект на pytesseract, pillow, который находит в Dota2 «смурфов» —
opendota2-vision | Ищем «смурфов» в Dota Энтузиаст запилил проект на pytesseract, pillow, который находит в Dota2 «смурфов» — опытных игроков, которые создают новый аккаунт с низким рейтингом, чтобы играть против менее сильных соперников. Их цель — играть на «низком» уровне, где он явно сильнее большинства игроков, выигрывать легко и, как правило, доминировать в матчах. #пет_проект @zen_of_python

Переменные окружения: введение Переменные окружения — это данные, хранящиеся вне программы, которые могут влиять на её поведение. Например, ключ API или пароли, указанные в коде, будут доступны только при выполнении программы — и не попадут в публичный репозиторий. Такое хранение существенно повышает безопасность «переносимого» проекта. Встроенный модуль os Простейший способ обратиться к средовой переменной в коде — os.environ:

import os
print(os.environ) # Вывести все переменные
val = os.environ['USER'] # Бросит KeyError, если нет
val = os.getenv('USER')
.env и python-dotenv Общепринятая практика — хранить конфигурацию в файле .env и загружать переменные при старте скрипта:

# .env
API_KEY=abcdef
DB_URL=postgres://...

from dotenv import load_dotenv
import os

load_dotenv()  # загрузка из .env
api_key = os.getenv('API_KEY')
Это удобно, упорядочивает конфигурацию и изолирует окружение от кода. Кстати, установка переменных внутри кода актуальна только для текущего процесса и его подпроцессов. После завершения скрипта изменения теряются и не влияют на внешнюю систему. Без .env Порой для простых проектов проще вообще не создавать файлов .env, можно экспортировать в виртуальное окружение переменную сразу. Как это делается в Unix или macOS:

export API_KEY="abcdef"
export API_SECRET="12345"
В Windows CMD:

set API_KEY=abcdef
set API_SECRET=12345
load_dotenv Еще один удобный способ «вчитаться» во все средовые переменные в коде — функция load_dotenv(). Для нее потребуется установить библиотеку: pip install python-dotenv. И теперь функция считает все переменные, каким бы способом они ни были объявлены:

from dotenv import load_dotenv
load_dotenv()
#основы @zen_of_python

Как динамически изменять исходный код функций В статье «Wicked Python Trickery» Эрик Ма делится необычным и мощным методом динамической модификации исходного кода функций во время выполнения программы. Что за трюк? В Python каждая функция имеет атрибут .__code__, который представляет собой объект байткода. Используя функции compile() и exec(), можно создать новый исходный код функции, скомпилировать его в байткод и выполнить в нужном пространстве имён. Это позволяет заменить поведение функции без её явного переопределения:

def something():
    raise NotImplementedError()

new_code = """
def something(x: int) -> int:
    return x * 2
"""

compiled = compile(new_code, "<magic>", "exec")
ns = {}
exec(compiled, {}, ns)

something_new = ns["something"]
print(something_new(21))  # Выведет 42
Здесь мы создаём новый исходный код функции something, компилируем его и выполняем в пустом пространстве имён. Затем извлекаем новую функцию из этого пространства и вызываем её. Практическое применение Эрик использовал этот метод для создания бота, который выбирает инструменты для выполнения, но не выполняет их сам. Вместо этого он генерирует Python-функции на лету, которые имеют доступ ко всем глобальным переменным текущего сеанса. Это позволяет создавать гибкие и мощные инструменты без необходимости заранее определять все возможные функции. Этот подход позволяет LLM (Large Language Model) генерировать код, который может использовать текущие данные и функции, доступные в глобальном пространстве имён. Риски безопасности Однако такой подход сопряжён с серьёзными рисками. Выполнение сгенерированного кода без должной проверки может привести к выполнению вредоносных действий, таких как удаление файлов, утечка данных или атаки на внешние сервисы. Эрик отметил, что в текущей реализации отсутствует защита от таких угроз, и планирует использовать инструменты, такие как Restricted Python, для ограничения возможностей выполняемого кода. #факт @zen_of_python

Как тестировать перенос и трансформацию данных без боли В статье на Tproger представили практичный и понятный подход к тестир
Как тестировать перенос и трансформацию данных без боли В статье на Tproger представили практичный и понятный подход к тестированию ETL-процессов с использованием Python, Pytest и фикстур. Автор — Data QA, поделилась опытом автоматизации создания и наполнения таблиц, хранением схем и данных в JSON, а также сравнением результатов до и после трансформации. Проект с минимальным стеком — pytest, allure и psycopg2. Статья будет полезна разработчикам и тестировщикам. #основы @zen_of_python

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

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
В этом примере файл автоматически закроется после выхода из блока, даже если в процессе чтения произойдет исключение. Как работает? Оператор работает с объектами, реализующими протокол контекстного менеджера, то есть имеющими методы: 🔘__enter__(): выполняется при входе в блок with. Готовит ресурс и возвращает его; 🔘__exit__(): выполняется при выходе из блока. Отвечает за очистку ресурса, например, закрытие файла. Примеры использования Взаимодействие с базой данных:

import sqlite3

with sqlite3.connect('example.db') as conn:
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    print(cursor.fetchall())
Соединение с базой данных будет автоматически закрыто, даже если запрос вызовет исключение. Зачем нужен with 🔘Гарантирует, что ресурсы будут освобождены после использования; 🔘Устраняет необходимость в явных блоках try / finally; 🔘Позволяет корректно обрабатывать исключения и освобождать ресурсы даже в случае ошибок; 🔘Повышение читаемости. #основы @zen_of_python

​​tabulate | pretty-printed-таблицы в CLI Библиотека сделает вывод датафрейма в консоль красивой. Поддерживает множество типов итерируемых объектов, может стилизовать вывод под GitHub, PSQL, LaTeX, Jira и проч. Самое оно для красоты в Google Colab. #инструмент @zen_of_python

Функции vs. метод в Python: разница Тем, кто в языке первый год, разница между этими объектами может показаться неочевидной, для них и написан этот лонгрид. Что такое функция? Это блок кода, который принимает входные данные (аргументы), обрабатывает их и возвращает результат. Выделяют два типа: 1️⃣ без побочных эффектов — это чисто математические функции; 2️⃣ с побочными эффектами — функции, которые взаимодействуют с чем-то вне себя, например, с файлом, списком, базой данных или терминалом. Пример чистой функции

def add(a, b):
    return a + b

print(add(2, 3))  # Всегда возвращает 5
Такая функция при одинаковых входных данных всегда возвращает один и тот же результат. Пример функции с побочными эффектами:

import random

def random_point():
    x = random.randint(0, 10)
    y = random.randint(0, 10)
    return x, y

print(random_point())  # Каждый раз возвращает разные значения
Здесь функция использует внешний модуль random, и результат может меняться при каждом вызове. Это и есть побочный эффект. Что такое метод? Это та же функция, которая принадлежит объекту класса. Пока определение запутывает, но посмотрите пример ниже. Здесь set_name — это метод, используемый только для объектов Employee:

class Employee:
    def set_name(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

# Создаём объекты
emp1 = Employee()
emp2 = Employee()

# Используем метод
emp1.set_name("Alice", "Smith")
emp2.set_name("Bob", "Brown")

print(emp1.first_name, emp1.last_name)  # Alice Smith
print(emp2.first_name, emp2.last_name)  # Bob Brown
#основы @zen_of_python

​​archivey | WinRAR больше не нужен Библиотека предлагает унифицированный способ обращения с архивами .zip, .rar, .tar, .7z и другими форматами. Массовые создание и распаковка, обработка символических ссылок (symlink), управление правами доступа и паролями. #инструмент @zen_of_python

И не дай Бог, pdb (Python Debugger) #кек @zen_of_python
И не дай Бог, pdb (Python Debugger) #кек @zen_of_python

По результатам опроса Python Software Foundation, в 2025 году, доля разработчиков, использующих FastAPI, выросла с 29 до 38%.
По результатам опроса Python Software Foundation, в 2025 году, доля разработчиков, использующих FastAPI, выросла с 29 до 38%. #кек @zen_of_python