en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

Библиотека Python разработчика | Книги по питону

Библиотека Python разработчика | Книги по питону

Open in Telegram

Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍 По всем вопросам @evgenycarter РКН clck.ru/3Ko7Hq

Show more

📈 Analytical overview of Telegram channel Библиотека Python разработчика | Книги по питону

Channel Библиотека Python разработчика | Книги по питону (@bookpython) in the Russian language segment is an active participant. Currently, the community unites 17 969 subscribers, ranking 7 264 in the Technologies & Applications category and 36 611 in the Russia region.

📊 Audience metrics and dynamics

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

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

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 5.36%. Within the first 24 hours after publication, content typically collects 2.75% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 963 views. Within the first day, a publication typically gains 494 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as numbers, yield, модуль, none, декоратор.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
“Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍 По всем вопросам @evgenycarter РКН clck.ru/3Ko7Hq”

Thanks to the high frequency of updates (latest data received on 31 October, 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.

17 969
Subscribers
-124 hours
-287 days
-9530 days
Posts Archive
Реализация парсеров с Pylasu Введение В этой статье рассказывается, как реализовать парсеры на Python с использованием Pylasu
Реализация парсеров с Pylasu Введение В этой статье рассказывается, как реализовать парсеры на Python с использованием Pylasu и ANTLR. Пошагово: 1. Создадим грамматику ANTLR для простого языка программирования Slang и сгенерируем парсер. 2. Определим абстрактное синтаксическое дерево (AST) с помощью Pylasu и научимся строить его из дерева разбора ANTLR. 3. Интегрируем парсер с CLI-приложением для обработки кода Slang из строк и файлов, с выводом AST в формате JSON. Полный код проекта доступен на GitHub. Вы можете экспериментировать, вносить улучшения и делиться идеями! https://tomassetti.me/implement-parsers-with-pylasu/ 👉@BookPython

На любое «Есть проблема» отвечаешь: «Найдём решение»? Тогда стань бизнес-агентом, профессиональным ассистентом топ-менеджеров
На любое «Есть проблема» отвечаешь: «Найдём решение»? Тогда стань бизнес-агентом, профессиональным ассистентом топ-менеджеров СИБУРа! За два года работы прокачаешься так, что сможешь развиваться в любых направлениях компании. Тебе предстоит ответственная миссия: — решать неразрешимое (например, находить нужный контакт за пару часов!); — оптимизировать график руководителя; — погружаться в бизнес-задачи; — вести деловую переписку и управлять документооборотом. Уверены, ты справишься. Ведь для этого в СИБУРе есть масштабные ресурсы: — план карьерного развития под руководством настоящих профи; — соцпакет с ДМС и скидками от партнеров; — премии за эффективную работу; — абонементы на спорт и бесплатные тренировки. Убедись, что владеешь навыками бизнес-агента, и стань одной из нас! Узнать больше #реклама career.sibur.ru О рекламодателе

🏷 BLACK FRIDAY: −65% на профессию Python-разработчика! Время превратить мечту об IT-карьере в реальность по сумасшедшей цене! 🔥 На курсе от Академии «Синергия» вас ждёт: 👨‍💻 17 реальных проектов в портфолио 🛠 10+ ключевых технологий: Django, Flask, Linux, Docker 🌐 Продвинутые темы: асинхронное программирование 🎓 Эксперты из Avito, «Т-Банка» и «Яндекса» 💼 Гарантированное трудоустройство 🎁 Бонус: 5 дополнительных курсов в подарок: 🎨 Figma с 0 до Pro 📊 Excel 🎤 Ораторское искусство 🧠 Soft-skills и Hard-skills предпринимателя 🤖 Создание чат-бота ⚠️ Предложение действует 48 часов 🔥 Скидка 65% — такого больше не будет! Забронируйте место по лучшей цене: https://epic.st/imedU #python #blackfriday #IT_образование Реклама. Университет «Синергия» ИНН 7729152149 erid:2Vtzqwnkw4r

Очередь с приоритетом — это структура данных, которая поддерживает две операции: добавление элемента и извлечение минимального из всех ранее добавленных элементов. Одной из самых распространённых реализаций очереди с приоритетом является бинарная куча. Это полное бинарное дерево со следующим свойством: ключ, хранящийся в каждом узле, меньше или равен (≤) ключам в дочерних узлах. Минимум всех элементов находится в корне такого дерева.




              1

      3               7

  5       4       9       8

15 16   17 18   19
В бинарной куче сложность операций вставки и извлечения составляет O(log n). Обычный способ хранения полного бинарного дерева в памяти — это массив, где дочерние элементы для x[i] находятся в x[2*i+1] и x[2*i+2].

[1, 3, 7, 5, 4, 9, 8, 15, 16, 17, 18, 19]
В Python нет бинарной кучи в виде класса, но предоставляется ряд функций, которые позволяют использовать список как бинарную кучу. Эти функции находятся в модуле heapq.

In [1]: from heapq import *
In [2]: heap = [3,2,1]
In [3]: heapify(heap)
In [4]: heap
Out[4]: [1, 2, 3]
In [5]: heappush(heap, 0)
In [6]: heap
Out[6]: [0, 1, 3, 2]
In [7]: heappop(heap)
Out[7]: 0
In [8]: heap
Out[8]: [1, 2, 3]
👉@BookPython

Генетический паспорт 7 999 ₽! Черная пятница в Genotek. Результаты теста расскажут о происхождении и здоровье Вас и Ваших будущих детей! Узнайте о предках, здоровье и Ваших возможностях в тесте - Генетический паспорт. Генетический паспорт включает в себя: - Происхождение 🏠 (этнический состав, поиск родственников, миграции предков, гены неандертальцев) - Риски заболеваний ⚡ - Питание - Спорт ⚽️ - Эффективность лекарств - Способности и характер 🎓 - Консультация с врачом ✅ Зарегистрируйтесь на сайте и составьте свое семейное древо бесплатно! Перейти на сайт Есть противопоказания. Посоветуйтесь с врачом. #реклама genotek.ru О рекламодателе

Популярный способ объявить абстрактный метод в Python — использовать исключение NotImplementedError:

def human_name(self):
    raise NotImplementedError
Хотя этот способ довольно популярен и даже поддерживается IDE (PyCharm считает такой метод абстрактным), у него есть недостаток. Ошибка возникает только при вызове метода, а не при создании экземпляра класса. Используйте abc, чтобы избежать этой проблемы:

from abc import ABCMeta, abstractmethod
class Service(metaclass=ABCMeta):
    @abstractmethod
    def human_name(self):
        pass
👉@BookPython

До 23% годовых по накопительному счету Откройте накопительный счет с высокой ставкой в Газпромбанке. Любая сумма и срок, пополнение и снятие - когда удобно, без потери начисленных процентов Узнать больше Финансовые услуги оказывает: Банк ГПБ (АО). #реклама gazprombank.ru О рекламодателе

Python 3 позволяет сделать некоторые аргументы функции обязательными именованными аргументами, что означает, что их нужно передавать как (arg=value), а не просто (value). Это может быть полезно, чтобы предотвратить вызовы функции вроде: grep(text, pattern, True, False, True), где True, False, True на самом деле означают: игнорировать регистр, не инвертировать совпадение, шаблон — регулярное выражение Perl. Было бы неплохо заставить использовать единственный разумный вид вызова:

grep(text, pattern,
    ignore_case=True,
    perl_regexp=True)
Чтобы достичь этого результата, следует разместить обязательные именованные аргументы после аргумента переменной длины (также известного как *args):

def grep(
    text, pattern, *args,
    ignore_case=False,
    invert_match=False,
    perl_regexp=False,
):
    pass
Если вам не нужен *args (как в примере), просто замените его на одиночную звездочку:

def grep(
    text, pattern, *,
    ignore_case=False,
    invert_match=False,
    perl_regexp=False,
):
    pass
👉@BookPython

Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких до конца года бесплатно. Кин
Дарим подписку на Яндекс Музыку Ответьте на 1 вопрос и Яндекс Музыка для вас и 3-х ваших близких до конца года бесплатно. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте сейчас❤️ Попробовать #реклама 18+ music.yandex.ru О рекламодателе Реклама на Яндексе

Если вы хотите перехватить как IndexError, так и KeyError, вы можете и должны использовать LookupError, их общего предка. Это оказалось полезным при доступе к сложным вложенным данным.

try:
    db_host = config['databases'][0]['hosts'][0]
except LookupError:
    db_host = 'localhost'
👉@BookPython

Яндекс Музыка до конца года бесплатно! Подписка Яндекс Плюс для вас и 3-х близких до конца года бесплатно! Слушайте музыку и
Яндекс Музыка до конца года бесплатно! Подписка Яндекс Плюс для вас и 3-х близких до конца года бесплатно! Слушайте музыку и аудиокниги, смотрите фильмы, читайте книги без рекламы и ограничений. Попробуйте!👍 Попробовать #реклама 18+ plus.yandex.ru О рекламодателе

>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
Вы когда-нибудь задумывались, почему при попытке выйти из интерактивного Python с помощью простого exit или quit появляется это сообщение? Решение довольно неожиданное, но изящное. Это не специальный случай для интерактивной оболочки, она просто показывает представление каждого вычисленного результата, а эта строка - просто представление функции exit. Строго говоря, вы не должны использовать exit в своих повседневных проектах, поскольку она была создана специально для интерактивной оболочки. Вместо этого используйте sys.exit(). 👉@BookPython

Ищете надежную СУБД? Присоединяйтесь к Data Platform V Телеграм-канал о СУБД и других продуктах для работы с данными в высоко
Ищете надежную СУБД? Присоединяйтесь к Data Platform V Телеграм-канал о СУБД и других продуктах для работы с данными в высоконагруженных системах. Рассказываем, как/какие продукты для работы с данными помогают бизнесу решать задачи быстрее и эффективнее. 4 причины, чтобы подписаться на канал: 1. Узнаете о 9 надежных решениях для работы с данными в условиях импортозамещения 2. Познакомитесь с реальными кейсами внедрения СУБД для бизнеса 3. Будете в курсе последних новостей и трендов рынка СУБД в России и мире 4. Получите приглашения на мероприятия с участием ведущих экспертов отрасли Подписаться #реклама О рекламодателе

Известный синтаксис декораторов в Python (@this_one) — это способ вызова функции высшего порядка. Раньше людям приходилось делать это вручную:

# prior to Python 2.4
def query():
    pass
query = atomic(query)

# now
@atomic
def query():
    pass
По сути, идентификатор после @ — это то, что будет вызвано. Можно также использовать идентификатор со скобками (@atomic(skip_errors=True)), что обычно используется для параметризированных декораторов. Также работает что-то вроде @decorators.db.atomic(True). Кажется, что любой вид выражения можно использовать в качестве декоратора, но это не так. После @ должен следовать один «дот-идентификатор» (например, decorators.atomic) и, при необходимости, одна пара скобок с аргументами (как вызов функции). Так что @decorators[2] использовать нельзя. Вот строка из грамматики Python:

decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
👉@BookPython

Скидка 15% на корпоративное такси. Яндекс Go для бизнеса Скидка 15% на первые три месяца. Возврат НДС до 20% на все рабочие п
Скидка 15% на корпоративное такси. Яндекс Go для бизнеса Скидка 15% на первые три месяца. Возврат НДС до 20% на все рабочие поездки. Контроль маршрутов и расходов в одном кабинете. Быстрая подача авто от 5 минут. Удобное онлайн-подключение без визита в офис. Узнать больше #реклама business.go.yandex О рекламодателе

Если dict запоминает порядок элементов в Python 3.6+, тогда зачем нужен collections.OrderedDict? А вот зачем:

>>> OrderedDict(a=1, b=2) == OrderedDict(b=2, a=1)
False
>>> dict(a=1, b=2) == dict(b=2, a=1)
True
👉@BookPython

🏁 Python разрабатывает API, как спорткар🏎 разгоняется до сотни — с FastAPI всё быстро, надёжно и элегантно 🏁 🛠 Если вам н
🏁 Python разрабатывает API, как спорткар🏎 разгоняется до сотни — с FastAPI всё быстро, надёжно и элегантно 🏁 🛠 Если вам нужны инструменты для создания веб-приложений, которые не тормозят, не тратят лишних ресурсов и готовы к продакшену — ждём вас 26 ноября в 20:00 мск на бесплатном открытом уроке, где мы разберём, как FastAPI переворачивает мир разработки API. Узнаете всё: от маршрутизации до работы с базами данных и асинхронного программирования. А еще покажем, как создать простое API буквально за пару минут. FastAPI — это не только скорость, но и простота в использовании. А для тех, кто хочет глубже нырнуть в разработку с Python, будет скидка на курс «Python Developer. Professional». 🔥Спикер Валентин Шилин — старший программист с опытом более 15 лет на С++, С#, JavaScript, Python, Scala, Java; аналитик данных; эксперт в обработке больших данных с помощью Scala/Spark и Hadoop Cloudera. 🔴 Зарегистрируйтесь прямо сейчас: https://vk.cc/cEBl3M Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

В Python 3 методы keys, values и items для словарей возвращают объекты-представления (view objects). В Python 2 они возвращали списки. Основное различие в том, что представления не хранят все элементы в памяти, а предоставляют их по мере запроса. Это работает отлично, пока вы просто итерируете ключи (что обычно и делается), но теперь вы не можете получить доступ к элементам по индексу.

TypeError: 'dict_keys' object does not support indexing
Можно утверждать, что индексация ключей не особо нужна, так как их порядок случайный, но это не совсем так. Во-первых, d.keys()[0] может быть удобным способом получить любой ключ (используйте next(iter(d.keys())) в Python 3). Во-вторых, начиная с Python 3.6, словари в CPython упорядочены по порядку добавления, и с версии Python 3.7 это стало стандартной особенностью языка. 👉@BookPython

Яндекс Заправки для бизнеса. Скидка до 3%. Без комиссий Управляйте заправками сотрудников с экономией на топливе. Возмещайте
Яндекс Заправки для бизнеса. Скидка до 3%. Без комиссий Управляйте заправками сотрудников с экономией на топливе. Возмещайте до 20% от стоимости топлива через возврат НДС. Получайте закрывающие документы в электронном виде. Еще удобнее с мобильным приложением. Узнать больше #реклама 16+ business.go.yandex О рекламодателе

Блок else для выражений for и try используется довольно редко. Однако, комбинируя их вместе, можно написать код, который выполняет итерацию по коллекции до первого успешного результата без использования дополнительных флагов.

import logging
from typing import List, Optional

logging.basicConfig(level=logging.DEBUG)

def first_int(iterable: List[str]) -> Optional[int]:
    for x in iterable:
        try:
            result = int(x)
        except ValueError:
            logging.debug('Bad int: %s', x)
        else:
            break
    else:
        result = None
        logging.error('No int found')

    return result

print(first_int(('a', 'b', '42', 'c')))
Вывод:

DEBUG:root:Bad int: a
DEBUG:root:Bad int: b
42
👉@BookPython