39269
Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Курс по ML: https://cl Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)?
Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало».
🗓️ Когда: 7 мая в 19:00 МСК
⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы
🧑🏻💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы.
🎁 Главный бонус для онлайна:
Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps.
👉 Занять место на вебинаре
🔍 Алгоритмы Джеффа Эриксона: одна из лучших книг по алгоритмам
Иллюстрации делают сложные концепции удивительно лёгкими для понимания.
Настоятельно рекомендуем.
🔗 Ссылка на книгу
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»
Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
⚠️ Supply chain атака в AI/ML: PyTorch Lightning с бэкдором
Если вы используете PyTorch Lightning — проверьте версии прямо сейчас.
👉 Версии 2.6.2 и 2.6.3 оказались скомпрометированы
👉 Безопасная версия: 2.6.1
Атака сработала максимально незаметно:
— вредоносный код запускался прямо при import lightning
— создавался фоновый поток
— подтягивался payload (~11MB через Bun runtime)
— начинался сбор чувствительных данных
Экфильтрация шла сразу по нескольким каналам:
— SSH-ключи
— cloud credentials (AWS, GCP и т.д.)
— GitHub / npm токены
— shell history
— криптокошельки
И всё это — тихо, через HTTPS (порт 443)
Если находился npm-токен:
→ вредоносный код внедрялся в пакеты
→ версия повышалась
→ пакеты публиковались заново
📌 То есть атака сама распространялась дальше
🔗 Ссылка на новость
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🔥 Быстрый sanity-check для любого Python-проекта
Речь про vibescore — утилиту, которая за 10 секунд оценивает проект и ставит ему оценку как в школе.
Запуск — одна команда:
vibescore .
Code Quality F
Security A+
Dependencies A+
Testing A+
Overall B+
vibescore . --min-score 70
vibescore . --format json
from vibescore import scan
report = scan(".")
🐍 Django: 20 лет на арене. Почему мы всё еще верим в мифы о «старичке»?
Django исполнилось 20 лет — для технологий это солидный возраст.
Из-за того, что сайт и официальный туториал фреймворка почти не менялись последние 10 лет, в сообществе закрепилось мнение, что проект стагнирует.
Вот некоторые мифы:
1. «Django находится в режиме поддержки (maintenance mode)»
Многие думают, что в Django только исправляют баги.
Реальность: Новая фича вливается в проект в среднем каждые 5,5 дней, а релизы с новыми функциями выходят каждые 8 месяцев.
Почему возник миф: Из-за политики строгой стабильности и обратной совместимости старый код продолжает работать годами, что создает иллюзию отсутствия изменений.
2. «Django — это медленно»
Сравнения с Fast API в бенчмарках часто показывают Django не в лучшем свете.
Реальность: Бенчмарки часто сравнивают «яблоки с апельсинами». Django по умолчанию включает в себя промежуточное ПО (middleware) для безопасности и удобства, в то время как в микрофреймворках это нужно добавлять вручную.
Инсайт: В реальных приложениях узким местом почти всегда является база данных, а не сам фреймворк. При правильной настройке индексов и запросов Django показывает отличную производительность.
3. «Django не подходит для API»
На официальном сайте всё еще нет документации по созданию API, а туториалы учат рендерить HTML-шаблоны.
Реальность: Более 50% сообщества используют Django именно для создания API, применяя Django Rest Framework (DRF) или Django Ninja.
Экосистема: Вокруг фреймворка существует живая и растущая среда библиотек для работы с API, просто об этом мало говорят на официальных ресурсах.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
Логирование в Python в 2026: что реально использовать
Если вы всё ещё думаете, что логирование — это просто print(), пора обновить картину.
Сегодня в Python есть три основных подхода, и каждый решает свою задачу:
1. Стандартный `logging`
База всей экосистемы. Через него логируют Django, FastAPI и почти все библиотеки.
Подходит, если вам нужна стабильность, интеграции и контроль.
Минус — многословная настройка и «олдскульный» API.
2. structlog
Лучший выбор для продакшена и микросервисов.
Логи — это словари → легко превращаются в JSON → удобно для аналитики и observability.
Плюс: нормальная работа с контекстом (request_id, user_id) через contextvars.
3. Loguru
Когда хочется просто и быстро.
Импортировали logger — и уже логируете.
Отлично подходит для небольших сервисов, скриптов и MVP.
🔗 Полный обзор: https://clc.to/fxbIEA
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🔥 4 привычки кодеров
Вот сколько общаюсь с разработчиками, постоянно слышу убеждение, что есть какой-то правильный способ писать софт. Все ищут секретную архитектуру, вылизывают паттерны, чтобы хоба и тимлид заплакал от счастья от твоего идеального кода.
но, я собрал 4 привычки адептов «чистого кода», (которые обычно все практикуют) 🤡
• Бесконечный рефакторинг рабочего кода.
Кажется, что так ты делаешь продукт лучше. Итог: жестко падаешь в перфекционизм. Переписываешь функцию по три раза, а бизнес ждет релиз. Закрываешь вкладку и в голове абсолютная пустота, время потрачено, а новых фичей ноль.
• Упарывание в сложную архитектуру
Сеньоры на ютубе обещают золотые горы, если внедрить микросервисы куда угодно. Итог: получаешь красивый overengineering-проект для мамы и 0 запущенных продуктов в срок, пока конкуренты клепают MVP на коленке.
• Душные споры на ревью
Неплохо, но как итог: ты пишешь полотна текста и тратишь часы на поиск глупой придирки к стилю, потому что банально фокус сместился с реальной задачи на эго.
• Ручная микро-оптимизация
Классика для тех, кто любит алгоритмы из универа. Итог: убиваешь дни жизни и выжимаешь миллисекунды, хотя бизнесу нужен был просто грязный, но рабочий скрипт еще вчера.
Проблема в том, что ни один из этих путей не дает самого главного - скорости и проверки гипотез. Реальному рынку плевать на твой идеальный код за 3 дня. Бизнес предпочтет код от ИИ-агента за 5 минут, который уже завтра начнет приносить деньги.
Хочешь обкатанный на нас лично и 100х учениках метод, как перестать кодить руками и начать делегировать задачи автономным системам?
👉 Заходи сюда, но у нас осталось всего 4 места, набор идет до завтрашнего дня.
P. S. Если интересно еще что-нибудь почитать от меня, то заходите в «Азбуку Айтишника», там я рассказываю об айти-базе, также у меня там есть бесплатный гайд на 15 глав по ии-агентам
🐍 В Python 3.15 появятся sentinel values (PEP 661)
После ~5 лет обсуждений в Python добавляют простую, но очень полезную вещь — sentinel-значения.
Иногда важно отличать:
— аргумент вообще не передали
— передали None
— передали конкретное значение
Раньше это делали через костыли (типа `object()`), теперь — нативно.
👉 Пример:
MISSING = sentinel("MISSING")
class Logger:
def __init__(self, level: MISSING | None | str = MISSING):
if level is MISSING:
self.level = get_global_default_level()
elif level is None:
self.level = None # отключить логирование
else:
self.level = level
NoneNone → особая логикаNone?
🐍 Python tip: как писать чище — `enumerate()` + распаковка
Иногда в цикле вам нужно сразу две вещи:
номер элемента и значения внутри него.
Вместо лишнего кода это можно сделать в одну строку:
for index, (service, status) in enumerate(services, start=1):
enumerate() даёт вам индекс,(service, status) сразу распаковывает кортеж.item[0], item[1],
🚀 Современный паттерн «Состояние» в Python: прощай, наследование
Традиционная реализация паттерна State через классы и наследование часто превращается в кошмар: куча мелких классов, дублирование методов и разбросанная логика переходов. В Python есть более элегантный способ.
В чем проблема классики?
В обычном ООП-подходе каждое состояние — это отдельный класс. Это приводит к тому, что вы пишете много одинаковых методов raise RuntimeError, если действие недоступно в текущем состоянии. В итоге сложно увидеть всю картину переходов целиком.
Pythonic-подход: Дженерики и Декораторы
Вместо иерархии классов можно создать универсальный движок State Machine, который работает как явная таблица соответствий:(Текущее состояние + Событие) -> (Следующее состояние + Действие).
Основные фишки такого дизайна:
1️⃣ Генерики (`Generic`): Движок типизируется через состояния, события и контекст (например, данные о платеже).
2️⃣ Декораторы @transition: Позволяют описывать логику переходов прямо над функциями действий. Это превращает ваш код в читаемую спецификацию: сразу видно, какие события переводят систему из одного статуса в другой.
3️⃣ Принцип открытости/закрытости: Чтобы добавить новый переход, вам не нужно менять существующие классы — достаточно написать новую функцию с декоратором.
4️⃣ Гибкость: Одно действие (например, «ошибка») можно легко привязать сразу к нескольким начальным состояниям через итерируемые объекты в декораторе.
Этот подход идеален для систем с четкими потоками данных: платежи, обработка заказов, логистика или парсеры. Классические классы стоит оставить только в случаях, когда каждое состояние имеет крайне сложную внутреннюю логику и специфичные только для него данные.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🔥 Как сейчас обстоят дела с Python type-checker’ами
🚀 Если коротко, рынок заметно сдвинулся: Pyrefly и Ty уже не просто «альтернатива», а реальные лидеры по скорости. И это видно не только в тестах, а на реальных проектах.
⏱️ На практике это выглядит так:
— маленькие проекты: разница почти незаметна (доли секунды)
— средние и большие: разрыв становится драматичным
— где Pyright/Mypy → десятки секунд или минуты
— Pyrefly/Ty → обычно укладываются в секунды
В CI или при активной разработке это напрямую превращается в экономию времени и более быстрый фидбек.
🧠 Отдельно про память — и тут тоже есть разница:
— Pyrefly часто потребляет меньше RAM
— особенно заметно на больших проектах
— пример с numpy:
• Pyright → ~70 сек и >3 ГБ
• Pyrefly → ~4.8 сек и ~1 ГБ
⚖️ Поэтому выбор всё ещё зависит от приоритетов:
— нужна стабильность → смотри в сторону Mypy/Pyright
— важна скорость → Pyrefly/Ty уже впереди
🔛 Полный обзор
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
Библиотека питониста
#развлекалово
🔥 Кого реально стоит читать питонисту в 2026
Давайте соберём «карту внимания» 👇
Кого вы реально читаете / смотрите из мира Python и IT? Кого-то из русскоязычной тусовки?
Не просто «знаю имя», а за кем следите регулярно — блоги, Twitter/X, YouTube, Telegram, GitHub.
👉 Формат простой
Кидайте в комменты:
— ник / имя
— где читаете (YouTube, TG, X и т.д.)
— за что именно (разборы, код, мысли, карьера и т.п.)
Я начну:
— Guido van Rossum — иногда пишет, но это база
— Armin Ronacher — мысли про Python и backend
— Andrej Karpathy — топ про AI и код
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🌳 Деревья в алгоритмах — быстрый гайд по иерархическим структурам
Деревья — одна из самых частых тем на собеседованиях и в реальных системах.
Если понять базу, закрывается огромный пласт задач.
👉 Что такое дерево:
Это структура данных, где элементы связаны иерархически: есть корень → ветки → листья.
Примеры из жизни:
— файловая система
— DOM в браузере
— организационные структуры
Базовые типы деревьев:
— Бинарное дерево — у каждого узла максимум 2 потомка
— Бинарное дерево поиска (BST) — слева меньше, справа больше
— Сбалансированные деревья (AVL, Red-Black) — держат высоту под контролем
— Trie — для строк и префиксов
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
Библиотека питониста
#развлекалово
👨💻 PyPy снова ускорился — и уже догоняет CPython в неожиданных местах
Вышел свежий релиз PyPy 7.3.22
Что поправили:
— пофиксили старый баг в JIT
— подтянули совместимость с CPython
— меньше странных расхождений в stdlib
Самое интересное — ускорения
pickle:
раньше PyPy был ≈ в 5.7 раза медленнее
теперь ≈ в 1.6 раза
json:
было медленнее CPython
стало быстрее (~0.7x от CPython)
PyPy всегда был «быстрый, но не везде». Сейчас постепенно закрываются именно те узкие места, где раньше приходилось откатываться на CPython
Когда вообще стоит смотреть на PyPy:
— много Python-кода без C-расширений
— CPU-bound задачи
— долгоживущие процессы (где JIT успевает разогнаться)
🔗 Ссылка на новость
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
PyWry — нормальный способ делать UI на Python без боли
Нашли интересный проект — PyWry. Суть простая: пишешь один Python-код — запускаешь где угодно (десктоп, браузер, ноутбук)
Что по факту умеет:
— UI собирается декларативно (через модели, без верстки-адa)
— под капотом нативные webview через PyTauri, не Electron
— работает в Jupyter, можно сразу прототипить
— из коробки FastAPI + WebSocket для веба
— есть мост Python ↔ JS (графики, таблицы и т.д.)
Интересный момент: можно начать в ноутбуке → потом без переписывания выкатить в веб → потом собрать в десктоп-приложение
Подходит, если:
— надо быстро сделать интерфейс к ML/данным
— не хочется городить фронтенд отдельно
— нужен lightweight вариант без тяжёлых рантаймов
🔗 Ссылка на проект
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🐍 Где практиковать Python в 2026 году
Знать теорию — хорошо, но без практики код писать не научишься. Собрали для вас подборку лучших платформ для оттачивания навыков Python, разделенную по целям:
1️⃣ Изучение основ
✳️ Python Tutor — визуализация выполнения кода.
✳️ W3Schools — уроки и редактор для начинающих.
✳️ SoloLearn — интерактив и задачи в дорогу.
2️⃣ Практика и улучшение
✳️ CodeSignal — подготовка к интервью.
✳️ Codewars — решение задач (ката) разной сложности.
✳️ Exercism — менторство и открытый исходный код.
3️⃣ Подготовка к интервью
✳️ LeetCode — классика кодинг-интервью с решениями.
✳️ StrataScratch — фокус на SQL + Python и кейсы ведущих компаний.
✳️ HackerRank — сертификация и задачи от работодателей.
4️⃣ Геймификация
✳️ CheckiO — игровые задачи для увлекательного обучения.
✳️ CodingBat — быстрые задачи с мгновенной проверкой.
Какую платформу выберете сегодня? Сохраняйте себе, чтобы не потерять! 📌
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🧠 Почему потоки в Python не всегда ускоряют код
Частая мысль:
«Добавлю threading → станет быстрее»
counter += 1
import threading
counter = 0
def worker():
global counter
for _ in range(1_000_000):
counter += 1
threads = [threading.Thread(target=worker) for _ in range(8)]
for t in threads: t.start()
for t in threads: t.join()
print(counter) # ≠ 8_000_000
lock = threading.Lock()
with lock:
counter += 1
from concurrent.futures import ThreadPoolExecutor
def worker():
local = 0
for _ in range(1_000_000):
local += 1
return local
with ThreadPoolExecutor(max_workers=8) as ex:
result = sum(ex.map(lambda _: worker(), range(8)))
print(result) # 8_000_000
🚀 pip 26.1: lock-файлы и “cooldown” зависимостей
Вышел pip 26.1, и это один из самых интересных апдейтов за последнее время.
Главное изменение — pip начинает двигаться в сторону детерминированных зависимостей и безопасности.
Теперь pip экспериментально поддерживает lock-файлы:
pip install -r pylock.toml
poetry, uv и других инструментах.
--uploaded-prior-to P7D
Вот компактная и полезная версия поста, которую можно сразу публиковать:
---
## Логирование в Python в 2026: что реально использовать
Если вы всё ещё думаете, что логирование — это просто print(), пора обновить картину.
Сегодня в Python есть три основных подхода, и каждый решает свою задачу:
1. Стандартный `logging`
База всей экосистемы. Через него логируют Django, FastAPI и почти все библиотеки.
Подходит, если вам нужна стабильность, интеграции и контроль.
Минус — многословная настройка и «олдскульный» API.
2. structlog
Лучший выбор для продакшена и микросервисов.
Логи — это словари → легко превращаются в JSON → удобно для аналитики и observability.
Плюс: нормальная работа с контекстом (request_id, user_id) через contextvars.
3. Loguru
Когда хочется просто и быстро.
Импортировали logger — и уже логируете.
Отлично подходит для небольших сервисов, скриптов и MVP.
---
### Что важно на практике
Не так важно, какую библиотеку вы выберете.
Важно, *как* вы логируете:
— структурированные логи (JSON вместо строк)
— единый формат полей
— контекст (request_id, user_id, trace_id)
— адекватные уровни (INFO / ERROR / DEBUG)
Без этого даже самый «модный» логгер превращается в шум.
---
### Быстрый ориентир
Если коротко:
— хотите максимум контроля и совместимости → logging
— строите серьёзный прод → structlog
— нужно быстро и без боли → Loguru
---
Логирование — это не про вывод текста.
Это про наблюдаемость системы.
А у вас сейчас что в проекте: классический logging или уже перешли на что-то современнее? 👇
Библиотека питониста
#развлекалово
🗓️ Уже через пару часов стартует вебинар!
Тема:
Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены
📚 В Read the Docs теперь нативно поддерживается uv Python package manager
Небольшая, но очень приятная новость для тех, кто собирает документацию.
Теперь uv можно использовать прямо в .readthedocs.yaml — без костылей и кастомных шагов установки.
💡 Что это даёт
— быстрее установка зависимостей
— чище конфигурация
— нормальная поддержка pyproject.toml и uv.lock
Если используете современный стек:
python:
install:
- method: uv
command: sync
groups:
- docs
requirements.txt:
python:
install:
- method: uv
command: pip
requirements: docs/requirements.txt
pip — возможно, это тот самый момент попробовать перейти.
🖥 Как настроить логирование в Textual (файл + живая консоль)
Если вы разрабатываете TUI на Textual, у вас уже есть удобный инструмент для логирования «из коробки» — без дополнительных библиотек.
В Textual есть встроенный TextualHandler, который полностью совместим со стандартным модулем Python logging module.
Это позволяет одновременно:
— сохранять логи в файл
— видеть их в реальном времени в консоли
— использовать привычный logging без изменений
👉 Минимальная настройка
import logging
from textual.logging import TextualHandler
logger = logging.getLogger("app")
logger.setLevel(logging.INFO)
# запись в файл
file_handler = logging.FileHandler("app.log")
logger.addHandler(file_handler)
# вывод в Textual
textual_handler = TextualHandler()
logger.addHandler(textual_handler)
logger.info(...) будут записываться и в файл, и в интерфейс.
pip install textual-dev
textual console
textual run --dev app.py
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ
Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные сервисы (в т.ч. для Сбера).
Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.
🛠 Стек и фреймворки:
DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).
Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.
MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.
📖 Документация, которую нужно знать:
Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.
OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.
Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.
🔬 Хардкорные статьи и препринты (на выходные):
Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.
How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.
MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.
InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.
Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде
🎁 Акция в честь старта продаж!
Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок.
👉 Забрать 2 курса по цене 1 и начать обучение
📌 Шпаргалка по Python для новичков: краткий справочник
🔢 Переменные и типы данных
Python — язык с динамической типизацией (вам не нужно указывать тип данных вручную).
🔢 Коллекции данных
— List (Списки): Изменяемые, упорядоченные (`[1, 2, 3]`).
— Tuple (Кортежи): Неизменяемые (`(1, 2, 3)`).
— Set (Множества): Только уникальные элементы, без порядка (`{1, 2, 3}`).
— Dict (Словари): Пары "ключ: значение" (`{"name": "Siree"}`).
🔢 Условные операторы
Используются для логических развилок:if — если условие верно.elif — если предыдущее не подошло, проверяем это.else — если ничего не подошло.
🔢 Циклыfor — для перебора элементов (например, в диапазоне `range`).while — выполняется, пока условие истинно.
🔢 Функции
Объявляются через ключевое слово def. Позволяют группировать код для повторного использования.
🔢 List Comprehension (Генераторы списков)
Крутая фишка Python, позволяющая создавать новые списки в одну строку. Например:squares = [x**2 for x in nums] — возводит каждое число из списка в квадрат.
🔢 Обработка исключений
Блок try...except нужен, чтобы программа не "падала" при возникновении ошибки (например, при попытке превратить буквы в число).
🔢 Работа с файлами
Всегда рекомендуется использовать конструкцию with open(...), так как она автоматически закрывает файл после работы с ним.
🔢 ООП (Классы и Объекты)
Классы позволяют создавать свои структуры данных с методами (функциями) и атрибутами (переменными).__init__ — конструктор, который срабатывает при создании объекта.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст
🚀 Polars 1.40.0: свежий апдейт
Polars явно движется в сторону out-of-core обработки.
🔥 Что реально важно
— Streaming join_asof (с группировками)
Если вы работаете с таймсериями — это закрывает давнюю боль.
Теперь можно джойнить огромные таблицы по времени без MemoryError.
👉 Новый менеджер памяти (spill-to-disk)
Если раньше всё упиралось в RAM — теперь Polars может аккуратно сбрасывать часть данных на диск.
Половина обновления — это перенос операций в streaming:
— cov, corr, skew, kurtosis → теперь можно считать на больших данных
— strptime → тоже стримится
— оптимизация sort → меньше лишних операций
Если вы используете:
.lazy().collect(streaming=True)
.unnest() теперь работает без аргументовmerge_sorted для уже отсортированных данныхdataframe interchange → если Вы связывали разные библиотеки, проверьте пайплайн
pip install -U polars
🐍 Python-чек-лист — всё, что нужно под рукой
Если вы работаете с Python — удобно иметь один список, который закрывает основные задачи: от базового кода до продакшена.
📍 Навигация: Вакансии • Задачи • Собесы
Библиотека питониста
#буст