🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
❤4👏2😁1
— PyPy теперь ещё стабильнее: вышел релиз 7.3.20
— Django празднует 20 лет — вспоминаем историю
— PEP 734 – Multiple Interpreters in the Stdlib —добавляет поддержку множественных интерпретаторов прямо в стандартную библиотеку.
— PEP 792 – Project Status Markers in the Simple Index — позволяет PyPI и другим индексам помечать статус проекта.
📦 Новые и обновлённые Python-библиотеки
— uv 0.8.0 — молниеносный менеджер пакетов и проектов для Python, написан на Rust
— TorchAO 0.12.0 — применение accuracy-oriented оптимизаций к PyTorch-моделям
— Firebase Admin SDK 7.0.0 — управляйте Firebase прямо из Python
— coredis 5.0.0 — асинхронный Redis-клиент на Python с высокой производительностью
— Streamlit 1.47.0 — быстрый способ создать data apps прямо в Jupyter-стиле
— dag-factory 0.23.0 — генерация DAGов Airflow на лету из YAML
— kedro-datasets 8.0.0 — коннекторы для чтения/записи данных в Kedro
— cyclonedx-python 7.0.0 — генерация SBOM (Software Bill of Materials) для Python
— textual 4.0.0 — современные TUI-приложения (интерфейс в терминале, но красиво)
— opentelemetry-python 1.35.0 — набор API и SDK для телеметрии в Python
🔥 Опыт других
— CPython — бессмертные Immortal объекты
— Анатомия тестового проекта на Python: раскладываем всё по полочкам для новичков
— Bash vs Python: битва, где нет проигравших
— PEP-734: Субинтерпретаторы в Python 3.14
— Запускаем несколько интерпретаторов в коде на Python — невероятная скорость
— Почему Python стал языком нейросетей и как это работает на практике
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4👍3
Forwarded from Библиотека задач по Data Science | тесты, код, задания
👍2
😱 Неожиданные фишки Python, которые точно удивят
Python — удобный и мощный язык, но иногда даже простые кусочки кода работают не так, как ожидаешь. В этом проекте опытные питонисты собрали такие примеры, чтобы помочь понять, что происходит «под капотом».
Если вы опытный программист — попробуйте угадать результат с первого раза! Если нет — отличный шанс узнать что-то новое и взглянуть на Python по-новому.
Начнем с самого простого:
👉 Ссылка на код: https://clc.to/iJUyPg
Библиотека питониста #свежак
Python — удобный и мощный язык, но иногда даже простые кусочки кода работают не так, как ожидаешь. В этом проекте опытные питонисты собрали такие примеры, чтобы помочь понять, что происходит «под капотом».
Если вы опытный программист — попробуйте угадать результат с первого раза! Если нет — отличный шанс узнать что-то новое и взглянуть на Python по-новому.
Начнем с самого простого:
a = "wtf"
b = "wtf"
print(a is b) # Что выведет?
a = "wtf!"
b = "wtf!"
print(a is b) # А здесь?
👉 Ссылка на код: https://clc.to/iJUyPg
Библиотека питониста #свежак
❤7👍5🔥3🤔2
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
👍1
Middle+/Senior NLP/LLM Engineer — от 4000 до 4500 $, гибрид (Москва)
Python developer — до 280 000 ₽, гибрид (Москва)
Junior Python Developer — от 70 000 до 110 000 ₽, удалёнка
Software Developer Python — от 80 000 до 250 000 ₽, удалёнка
Senior Python AQA Engineer — от 3 000 $, удалёнка
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👾2❤1👍1🌚1
При разработке приложений на Python часто используют
print
для отладки и вывода сообщений. Но в реальных проектах (особенно в продакшене) так делать нельзя — вместо этого используют модуль logging
, который позволяет писать структурированные логи в файлы или системы агрегации логов.🤔 Но есть «подводный камень».
Рассмотрим простой пример: у нас есть функция, которая делит два числа. Если происходит деление на ноль — приложение падает с ошибкой
ZeroDivisionError
:import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.FileHandler("app.log")
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
def divide(a, b):
return a / b
def main():
logger.info("Application start")
a = 10
b = 0
logger.info(divide(a, b))
logger.info("Application end")
if __name__ == "__main__":
main()
При запуске мы видим ошибку в консоли, но в логе — только сообщение о старте приложения:
2025-07-14 22:20:04,551 __main__ INFO Application start
Если приложение работает локально — это не страшно, мы видим трассировку ошибки в консоли.
В Python есть специальный механизм — функция
sys.excepthook
, которая вызывается при необработанных исключениях. Можно переопределить её, чтобы логировать полную информацию об ошибке, включая стек вызовов.Добавим в код обработчик:
import logging
import sys
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.FileHandler("app.log")
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
def handle_uncaught_exception(exc_type, exc_value, exc_traceback):
logger.critical(
"Uncaught exception, application will terminate.",
exc_info=(exc_type, exc_value, exc_traceback),
)
sys.excepthook = handle_uncaught_exception
def divide(a, b):
return a / b
def main():
logger.info("Application start")
a = 10
b = 0
logger.info(divide(a, b))
logger.info("Application end")
if __name__ == "__main__":
main()
Теперь, при возникновении исключения
ZeroDivisionError
, в app.log
запишется подробный лог с трассировкой ошибки:2025-07-14 22:30:44,061 __main__ INFO Application start
2025-07-14 22:30:44,061 __main__ CRITICAL Uncaught exception, application will terminate.
Traceback (most recent call last):
File "/home/andy/main.py", line 31, in <module>
main()
File "/home/andy/main.py", line 27, in main
logger.info(divide(a, b))
File "/home/andy/main.py", line 21, in divide
return a / b
ZeroDivisionError: division by zero
— Оборачивать весь код в глобальный
try-except
— плохая практика. Это может скрыть настоящие ошибки и усложнить отладку.—
sys.excepthook
работает централизованно и не мешает локальной обработке ошибок там, где это нужно.— Этот способ ловит именно непредвиденные ошибки, которые не были перехвачены в коде.
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤6👍5🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
desto — это удобная панель управления, которая позволяет запускать, отслеживать и управлять вашими bash и Python скриптами прямо из браузера. Всё работает поверх
tmux
, без лишней возни.Возможности:
tmux
-сессий в один клик.sh
и .py
файловУстановка:
pip install desto
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2
🔥 Хороший ML-разработчик не начинает с нейросетей
На собеседовании по ML System Design кандидату дают задачу «предсказать отток», а он сразу лезет в нейросети. Красиво, модно, дорого.
Но профи думает иначе:
💭 Логрегрессия? Градиентный бустинг?
💭 А сколько у нас данных и времени?
💭 Что с интерпретируемостью?
Потому что не выбрать адекватную модель — это уже ошибка.
Нейросети — это круто. Но без понимания классического ML вы просто «подключаете модельку», а не строите решения.
➡️ На курсе разберём:
— линейные модели, деревья, PCA, кластеризацию
— метрики, переобучение, bias vs variance
— инженерные подводные камни, которые идут сразу после fit()
🎁 Скидка 10 000₽ по промокодуEarlybird , только до 27 июля.
А ещё — подарок для первых 10 участников: специальный лонгрид по теме курса, чтобы вы могли начать погружение в материал уже сегодня.
🔗 Успей записаться — и начни карьеру в Data Science уже через 3 месяца!
На собеседовании по ML System Design кандидату дают задачу «предсказать отток», а он сразу лезет в нейросети. Красиво, модно, дорого.
Но профи думает иначе:
💭 Логрегрессия? Градиентный бустинг?
💭 А сколько у нас данных и времени?
💭 Что с интерпретируемостью?
Потому что не выбрать адекватную модель — это уже ошибка.
Нейросети — это круто. Но без понимания классического ML вы просто «подключаете модельку», а не строите решения.
➡️ На курсе разберём:
— линейные модели, деревья, PCA, кластеризацию
— метрики, переобучение, bias vs variance
— инженерные подводные камни, которые идут сразу после fit()
🎁 Скидка 10 000₽ по промокоду
А ещё — подарок для первых 10 участников: специальный лонгрид по теме курса, чтобы вы могли начать погружение в материал уже сегодня.
🔗 Успей записаться — и начни карьеру в Data Science уже через 3 месяца!
❤2
В новом видео показывают, как выстроить бысткие и предсказуемые локальные Python-процессы с помощью uv — современного инструмента для управления зависимостями.
Разбираются конкретные техники, которые делают работу над проектами стабильнее и удобнее:
— управление зависимостями без лишней магии
— автоматизация повседневных задач
— упрощение локальной разработки в команде
Также показывают, как uv можно сочетать с:
📌 Just — таск-раннер
📌 Overmind — управление множеством процессов
📌 Direnv — автозагрузка переменных окружения
Подход делает локальную разработку не только быстрее, но и скучнее в хорошем смысле — без сюрпризов, хаоса и «а у меня не работает».
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤3
📦 Распаковка * и ** прямо в генераторах
Это предложение в Python (PEP 798), которое добавляет возможность использовать распаковку (
➡️ Часто нужно объединить много списков, множеств или словарей в один — сейчас для этого приходится писать вложенные циклы или использовать сложные конструкции. Новый синтаксис делает это проще и понятнее.
Допустим, есть список списков:
Как сейчас объединить их в один список:
С новым синтаксисом можно просто написать:
Это автоматически распакует все элементы из вложенных списков в один.
То же самое работает для множеств и словарей:
И для генераторов тоже:
👇 А как вы обычно объединяете несколько списков или словарей?
Библиотека питониста #свежак
Это предложение в Python (PEP 798), которое добавляет возможность использовать распаковку (
*
и **
) прямо в списковых, множественных и словарных генераторах и выражениях.Допустим, есть список списков:
its = [[1, 2], [3, 4], [5]]
Как сейчас объединить их в один список:
flattened = [x for it in its for x in it]
С новым синтаксисом можно просто написать:
flattened = [*it for it in its]
Это автоматически распакует все элементы из вложенных списков в один.
То же самое работает для множеств и словарей:
sets = [{1, 2}, {2, 3}]
combined_set = {*s for s in sets} # объединение всех множеств
dicts = [{'a': 1}, {'b': 2}]
combined_dict = {**d for d in dicts} # объединение словарей
И для генераторов тоже:
gen = (*it for it in its)
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥8❤6
В Python поведение объектов в
if
-ах — это не магия, а продуманный дизайн.Когда вы пишете:
if obj:
...
Интерпретатор Python делает следующее:
__bool__()
, если метод определён.__len__()
.__bool__()
, ни __len__()
— объект считается True по умолчанию.Хотите, чтобы объект вёл себя как
True
или False
— определите метод __bool__()
или хотя бы __len__()
:class Scroll:
def __init__(self, text):
self.text = text
def __bool__(self):
return bool(self.text.strip())
Теперь:
bool(Scroll("Мир")) # True
bool(Scroll(" ")) # False
А если это контейнер — можно просто
__len__()
:class WisdomBasket:
def __init__(self):
self.sayings = []
def __len__(self):
return len(self.sayings)
Потому что
if obj:
— это не просто проверка, а сообщение:«Если объект значим…»
И вы решаете, что значит «значим».
Например, что вы хотите сказать, когда пишете:
if response:
Означает ли это:
— что запрос прошёл успешно?
— что в теле ответа есть данные?
— что статус 200?
Это решаете вы, определяя bool.
Но не переусердствуйте: если логика неочевидна, лучше писать явно:
if config.is_valid():
чем
if config: # ❓что это значит?
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👏3❤2
😤 Устал листать туториалы, которые не складываются в картину
У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?
Пора с этим разобраться!
Наш курс по классическому ML:
— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать
🔔 До 27 июля по промокодуEarlybird — минус 10.000₽
P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.
👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?
Пора с этим разобраться!
Наш курс по классическому ML:
— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать
🔔 До 27 июля по промокоду
P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.
👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
🥱3😁1🤔1
Если вы думали, что для работы с аудио нужны DAW и плагины — у нас для вас новости. На PyCon US 2025 инженер Spotify Питер Собот показал, как с помощью библиотеки pedalboard можно:
Пример: добавить эффект эха в один канал — всего пару строк кода:
mono = audio[0] # one channel
delay_seconds = 0.2 # 1/5 of a second
delay_samples = int(f.samplerate * delay_seconds)
volume = 0.75 # 75% of original volume
for i in range(len(mono) - delay_samples):
mono[i + delay_samples] += mono[i] * volume
⚠️ Важное правило: аудио нужно обрабатывать потоково. Даже файл размером в 3 МБ может занять 14 ГБ в памяти — и положить ваш скрипт.
Кроме эффектов, библиотека умеет:
— ресемплить на лету
— стримить звук с микрофона или на колонки
— изменять длительность аудио
— перекодировать в MP3 / FLAC / OGG
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2😍1
🔥 Холивар: обратная связь после собеса — обязательна или «идите лесом»
В последнее время всё чаще появляются кандидаты, которые требуют расширенную обратную связь после интервью. Кто-то даже предъявляет претензии в ответ на отказ — «я же дошёл до финала, где мой оффер?!» Один умудрился пригрозить судом, аргументируя это тем, что раз прошёл два тура, значит имел право на трудоустройство. Эйчары в шоке.
🈁 Одни говорят: «Мы потратили своё время — вы обязаны объяснить, почему отказали!»
🈁 Другие: «Это не университет, чтобы каждому ставить рецензию. Не подошёл — до свидания.»
🈁 А третьи: «Если нет фидбэка — вы токсичная компания, и точка.»
Голос народа: вам вообще нужна обратная связь после собеса:
❤️ — Да, и желательно максимально подробная
👍 — Краткая: причины отказа, без воды
🔥 — Нет, это лишнее и бесполезно
😆 — Не нужна, но хоть будьте вежливы
👇 Пишите в комментарии — интересно, кто на чьей стороне.
Библиотека питониста #междусобойчик
В последнее время всё чаще появляются кандидаты, которые требуют расширенную обратную связь после интервью. Кто-то даже предъявляет претензии в ответ на отказ — «я же дошёл до финала, где мой оффер?!» Один умудрился пригрозить судом, аргументируя это тем, что раз прошёл два тура, значит имел право на трудоустройство. Эйчары в шоке.
Голос народа: вам вообще нужна обратная связь после собеса:
❤️ — Да, и желательно максимально подробная
👍 — Краткая: причины отказа, без воды
🔥 — Нет, это лишнее и бесполезно
😆 — Не нужна, но хоть будьте вежливы
Библиотека питониста #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍79❤27😁5🔥4
🤔 «Начни сразу с нейросетей — зачем тебе логрегрессия?»
Это один из худших советов для начинающего ML-разработчика. Зрелость — это понимать, где простого достаточно, а не тянуть трансформеры на любую задачу из-за хайпа.
Классика ML — это не допотопная теория, а база (bias/variance, деревья, метрики), без которой не понять Deep Learning.
⚡️ Хотите освоить этот фундамент на реальных задачах? Приходите на наш курс по классическому ML. Только хардкор, только продовые задачи!
📆 Старт — 12 августа.
Для первых 10 участников бонус — специальный лонгрид по теме курса, чтобы вы могли начать разбираться уже сейчас.
🎁 Последний день промокодаEarlybird на скидку 10.000₽.
👉 Не упустите шанс!
Это один из худших советов для начинающего ML-разработчика. Зрелость — это понимать, где простого достаточно, а не тянуть трансформеры на любую задачу из-за хайпа.
Классика ML — это не допотопная теория, а база (bias/variance, деревья, метрики), без которой не понять Deep Learning.
⚡️ Хотите освоить этот фундамент на реальных задачах? Приходите на наш курс по классическому ML. Только хардкор, только продовые задачи!
📆 Старт — 12 августа.
Для первых 10 участников бонус — специальный лонгрид по теме курса, чтобы вы могли начать разбираться уже сейчас.
🎁 Последний день промокода
👉 Не упустите шанс!
🥱3❤2
📚Напоминаем про наш полный курс «Самоучитель по 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
Мы написали и собрали для вас в одну подборку все 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
🔥14🤩4👍2
Это первый релиз-кандидат Python 3.14 — значит, API уже стабильно, а до финального релиза будут приниматься только чёткие багфиксы.
Главное из нового релиза:
— PEP 779: официальная поддержка free-threaded Python
— PEP 649: отложенная оценка аннотаций типов
— PEP 750: template-строки — как f-строки, но кастомные
— PEP 734: несколько интерпретаторов в стандартной библиотеке
— PEP 784: поддержка Zstandard (модуль
compression.zstd
)— PEP 765: запрет
return
, break
, continue
вне finally
— Улучшенная C API конфигурация (PEP 741)
— Экспериментальный интерпретатор с заметным ускорением
— Новый CLI-инструмент для асинхронной инспекции Python-процессов
🔗 Подробнее
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4⚡2❤🔥1