ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

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

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

Открыть в Telegram

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

Больше

📈 Аналитический обзор Telegram-канала Библиотека Python разработчика | Книги по питону

Канал Библиотека Python разработчика | Книги по питону (@bookpython) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 17 973 подписчиков, занимая 7 274 место в категории Технологии и приложения и 36 654 место в регионе Россия.

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

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

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

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 5.41%. В первые 24 часа после публикации контент обычно набирает 2.64% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 973 просмотров. В течение первых суток публикация набирает 475 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 4.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как numbers, yield, модуль, none, декоратор.

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

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

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

17 973
Подписчики
-224 часа
-287 дней
-9630 дней
Архив постов
Ibis Phuket Kata 3* — отличный старт отдыха у пляжа Ката Ищете доступный и комфортный отель в районе Ката? Ibis Phuket Kata —
Ibis Phuket Kata 3* — отличный старт отдыха у пляжа Ката Ищете доступный и комфортный отель в районе Ката? Ibis Phuket Kata — всего в 10 минутах от пляжа и в шаге от кафе, рынков и ночного базара. Локация: отель на улице Kata Road — удобно добираться до моря, магазинов и развлечений. Бассейн с шезлонгами и барбекю-зоной у бара — для отдыха после пляжа. Питание: завтраки шведский стол с фруктами, выпечкой и горячими блюдами. В ресторане закуски, тапас и напитки. Бар — в лобби и у бассейна. Ibis Phuket Kata — это ваш надёжный и доступный выбор в Ката: чисто, удобно, недорого и с пляжем в пешей доступности. Для спокойного отдыха без лишних изысков — отличный вариант! Хотите забронировать неделю отдыха? Это можно сделать на сайте pegast.ru Смотреть #реклама pegast.ru О рекламодателе

Что такое контекстный менеджер в Python? Контекстный менеджер в Python — это специальный тип объекта, который определяет методы enter() и exit() и используется с инструкцией with. Эти объекты часто применяются в операциях, которые требуют установки и освобождения ресурсов.  Частый сценарий — это работа с файлом:

with open('file.txt', 'r') as file:
    data = file.read()
Здесь контекстный менеджер гарантирует, что файл будет корректно закрыт после завершения блока with, даже если при чтении файла возникнет исключение. Вот как можно написать простой контекстный менеджер самостоятельно:

import time
 
class Timer:
    def __enter__(self):
        self.start = time.time()
 
    def __exit__(self, exc_type, exc_val, exc_tb):
        self.end = time.time()
        print(f'Время выполнения: {self.end - self.start:.2f} секунд')
 
with Timer():
    # код, время выполнения которого нужно измерить
    time.sleep(2)
Мы в MAX 👉@BookPython

Т-Технологии зовут на Стековку 1 ноября в Екатеринбурге, Новосибирске и Нижнем Новгороде стартует квест для ИТ-специалистов —
Т-Технологии зовут на Стековку 1 ноября в Екатеринбурге, Новосибирске и Нижнем Новгороде стартует квест для ИТ-специалистов — с городским интерактивом, задачами на знание кода и смекалку. Что нужно делать? Решать онлайн- и офлайн-задания и получать за это баллы для своего города. Какой приз? В городе, который наберет больше всего баллов, устроят вечеринку. А самые активные участники смогут повлиять на выбор тематики и программы. Как участвовать? Просто зарегистрируйтесь до 31 октября

В Python вы можете переопределить оператор квадратных скобок ([]), определив магический метод getitem. Примером может быть об
В Python вы можете переопределить оператор квадратных скобок ([]), определив магический метод getitem. Примером может быть объект Cycle, который виртуально содержит бесконечное количество повторяющихся элементов:

class Cycle:
    def __init__(self, lst):
        self._lst = lst

    def __getitem__(self, index):
        return self._lst[index % len(self._lst)]

print(Cycle(['a', 'b', 'c'])[100])  # prints 'b'
Необычность здесь заключается в том, что оператор [] поддерживает уникальный синтаксис. Он может использоваться не только так — [2], но и так — [2:10], или [2:10:2], или [2::2], или даже [:]. Семантика — [start:stop:step], но вы можете применять её так, как вам нужно, для ваших собственных объектов. Но что же получает getitem в качестве параметра index, если использовать этот синтаксис? Для этого существуют объекты slice.

In : class Inspector:
...:     def __getitem__(self, index):
...:         print(index)
...:
In : Inspector()[1]
1
In : Inspector()[1:2]
slice(1, 2, None)
In : Inspector()[1:2:3]
slice(1, 2, 3)
In : Inspector()[:]
slice(None, None, None)
Вы даже можете комбинировать синтаксис кортежей и срезов:

In : Inspector()[:, 0, :]
(slice(None, None, None), 0, slice(None, None, None))
Slice не делает ничего, кроме как просто хранит атрибуты start, stop и step.

In : s = slice(1, 2, 3)
In : s.start
Out: 1
In : s.stop
Out: 2
In : s.step
Out: 3
Мы в MAX 👉@BookPython

Конференция «Алиса, что нового?» — уже скоро Яндекс в прямом эфире представит новое поколение своих генеративных моделей — он
Конференция «Алиса, что нового?» — уже скоро Яндекс в прямом эфире представит новое поколение своих генеративных моделей — они расширят возможности нейросети Алисы и позволят ей совершать действия во внешнем мире. Старт прямого эфира — 28 октября в 12:00. Первая конференция «Алиса, что нового?» состоялась весной этого года и была посвящена нейросети Алисе и анонсам умных устройств. На этот раз акцент будет сделан на крупном обновлении нейросети. Подпишитесь, чтобы не пропустить начало Записаться онлайн #реклама 16+ О рекламодателе

Вредные советы python разработчику l=[['a', 'b', 'c'], ['1', '2'], ['#']] sum(l, []) В Python можно выпрямить вложенные списк
Вредные советы python разработчику

l=[['a', 'b', 'c'], ['1', '2'], ['#']]
sum(l, [])
В Python можно выпрямить вложенные списки с помощью... функции sum(). Вот код (выполнять, пока никто не видит): Дело в том, что sum() принимает первым аргументом итерируемый объект, а вторым — значение, с которого начинается операция. По умолчанию это 0, но если указать пустой список [], то sum() начнёт с него. Затем sum() последовательно применяет операцию сложения к элементам первого аргумента, начиная со значения второго аргумента. В случае списков это означает конкатенацию. Мы в MAX 👉@BookPython

Крупнейший университет искусственного интеллекта Приглашаем на бесплатный курс по искусственному интеллекту! Мы подготовили д
Крупнейший университет искусственного интеллекта Приглашаем на бесплатный курс по искусственному интеллекту! Мы подготовили для тебя 5 занятий по теме «Разработка нейро-сотрудников на GPT». Пройди регистрацию для получения полного бесплатного доступа к курсу. ✨ 8 000+ студентов со всего мира ✨ 600+ AI-проектов, созданных студентами ✨ Сборная Университета — победители крупнейших AI-хакатонов России ✨ Стажировки в крупнейших компаниях России (РЖД, Ростелеком, РУДН, Совкомбанк, Самолет и другие) ✨ Трудоустраиваем выпускников в крупнейшие компании (Яндекс, ВТБ, Сбербанк, Роскосмос и другие) Будем рады видеть тебя в наших рядах! Узнать больше #реклама 16+ neural-university.ru О рекламодателе

Генераторы — один из самых полезных механизмов в Python. Они имеют множество применений, одно из которых — создание менеджеров контекста. Обычно нужно вручную определять магические методы __enter__ и __exit__, но декоратор @contextmanager из модуля contextlib делает это намного удобнее:

from contextlib import contextmanager

@contextmanager
def atomic():
    print('BEGIN')

    try:
        yield
    except Exception:
        print('ROLLBACK')
    else:
        print('COMMIT')
Теперь atomic — это менеджер контекста, который можно использовать следующим образом:

In : with atomic():
...:     print('ERROR')
...:     raise RuntimeError()
...:
BEGIN
ERROR
ROLLBACK
Кроме того, @contextmanager позволяет использовать его как декоратор, так и менеджер контекста.

In : @atomic()
...: def ok():
...:     print('OK')
...:
In : ok()
...:
BEGIN
OK
COMMIT
Мы в MAX 👉@BookPython

+9
Лучший курс по Python 0: Мета информация 1: int 2: + 3: Какой Python язык? 4: bool 5: None 6.0: float 6.1: float, интервью с Michael Overton 7: typeshed 7.1: typeshed, интервью с Alex Waygood источник Мы в MAX 👉@BookPython

Функция enumerate Эта встроенная функция снабжает циклы счётчиком. Возвращает генераторный объект, который имеет метод, вызываемый встроенной функцией next: на каждом проходе цикла возвращает кортеж {индекс, значение}. Цикл for проходит по этим кортежам автоматически, что позволяет распаковывать их значения с помощью присваивания кортежей почти так, как в zip.

S = "stroka"

example = enumerate(S)
next(example) # -> (0, 's')
Пример использования:

shopping_list = ['яблоки', 'бананы', 'апельсины', 'хлеб']

for index, item in enumerate(shopping_list, start=1):
    print(f"Пункт {index}: {item}")
Мы в MAX 👉@BookPython

ТГ-канал о том, как снова начать слышать себя Иногда внутри слишком много мыслей, а вокруг - слишком много чужих голосов. Хоч
ТГ-канал о том, как снова начать слышать себя Иногда внутри слишком много мыслей, а вокруг - слишком много чужих голосов. Хочется тишины, чтобы наконец услышать себя✨ В канале - спокойные тексты о том, как находить ясность, ощущать свои границы и идти по жизни из внутренней опоры⚡ Присоединяйся это пространство, где можно дышать свободно❤️ Узнать больше #реклама oncesee.ru О рекламодателе

Python предоставляет мощную библиотеку для работы с датой и временем: datetime. Интересный момент заключается в том, что объекты datetime имеют специальный интерфейс для поддержки часовых поясов (а именно атрибут tzinfo), но этот модуль поддерживает интерфейс лишь частично, оставляя остальную часть задачи другим модулям. Наиболее популярный модуль для этой задачи — pytz. Однако сложность в том, что pytz не полностью соответствует интерфейсу tzinfo. Документация pytz указывает на это одной из первых строк: «Эта библиотека отличается от документированного API Python для реализаций tzinfo». Нельзя использовать объекты часовых поясов pytz в качестве атрибута tzinfo. Если попытаться это сделать, можно получить абсолютно неожиданные результаты.

In : paris = pytz.timezone('Europe/Paris')
In : str(datetime(2017, 1, 1, tzinfo=paris))
Out: '2017-01-01 00:00:00+00:09'
Посмотрите на этот смещение +00:09. Правильное использование pytz выглядит следующим образом:

In : str(paris.localize(datetime(2017, 1, 1)))
Out: '2017-01-01 00:00:00+01:00'
Кроме того, после любых арифметических операций вам следует нормализовать объект datetime на случай изменения смещения (например, на границе периода летнего времени).

In : new_time = time + timedelta(days=2)
In : str(new_time)
Out: '2018-03-27 00:00:00+01:00'
In : str(paris.normalize(new_time))
Out: '2018-03-27 01:00:00+02:00'
Начиная с Python 3.6, рекомендуется использовать dateutil.tz вместо pytz. Он полностью совместим с tzinfo, может быть передан как атрибут, не требует нормализации, хотя работает немного медленнее. Мы в MAX 👉@BookPython

Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 На
Реклама для бизнеса любого уровня в Яндекс Директе Создайте эффективную рекламную кампанию с алгоритмами Яндекс Директа 👌 Начните прямо сейчас ⚡ Зарегистрироваться #реклама direct.yandex.ru О рекламодателе

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

Логика молока Молочные продукты, которые мы производим с любовью и заботой о вас! Подписаться и узнать о них больше. Подписат
Логика молока Молочные продукты, которые мы производим с любовью и заботой о вас! Подписаться и узнать о них больше. Подписаться #реклама О рекламодателе

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




              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]
Мы в MAX 👉@BookPython

МТС приглашает всех, кто пишет на С++, Go, Python, JS, Java, C# и других языках, на True Tech Champ — всероссийский чемпионат
МТС приглашает всех, кто пишет на С++, Go, Python, JS, Java, C# и других языках, на True Tech Champ — всероссийский чемпионат по программированию. Соревнование будет проходить в двух треках. Трек 1. Алгоритмический. Индивидуальный зачет [призовой фонд 2 750 000 рублей] Реши задачи, которые помогут прокачаться в работе с алгоритмами и структурами данных. Похожие задания встречаются на собеседованиях в МТС и других крупных компаниях. До 240 лучших участников попадут в финал и сразятся в лайв-кодинге. Трек 2. Программирование роботов. Командный формат [призовой фонд 7 500 000 рублей] Проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы. 🎁 Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка. 📍 Зрелищный шоу-финал с ИИ-технологиями, кодерскими челленджами и выступлениями международных и российских спикеров пройдет 21 ноября в МТС Live Холл. Стоит участвовать, чтобы: — Освежить знания и прокачать новые навыки. — Заявить о себе на всю страну, получить карьерный буст и шанс лично пообщаться с HR-специалистами МТС. ⏰ Регистрация участников до 20 октября на сайте.

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

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

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

Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как
Запустите рекламу в телеграм-каналах с Яндекс Директом Перфоманс-реклама теперь в телеграм-каналах ⚡ Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе