и посмотреть медиа
Pythonist's Library: Python Django Flask
и посмотреть медиа
Everything useful for Python developers: Django, Flask and libraries.
Everything useful for Python developers: Django, Flask and libraries.
Comprehensive channel for Pythonists. Contains selections of libraries, guides on Django and Flask, code examples and tips. Everything most needed in one place for efficient work and learning web development in Python.
🚨 Ловить все исключения подряд — почти всегда плохая идея Многие пишут так: try: ... except (ValueError, TypeError, KeyError, NameError): print("Что-то пошло не так") Выглядит «надёжно». Но на практике такой код часто прячет реальные баги и усложняет отладку. Допустим, вы читаете CSV с датами и хотите обработать ошибки: try: start = parse_date(row["start"]) end = parse_date(row["end"]) except (ValueError, TypeError, KeyError, NameError): print("Некорректная дата") На первый взгляд — всё ок. Но проблема в деталях. 1. NameError здесь вообще лишний NameError обычно означает баг в коде. Например, вы случайно написали: star_date вместо start_date Если ловить NameError, программа просто проглотит ошибку — и вы даже не заметите, что сломали код. Иногда traceback — это полезно. 2. ValueError — логичная ошибка Если в CSV дата битая: 2026-00-01 то datetime честно скажет: ValueError Это уже ошибка данных пользователя — её как раз нормально обрабатывать. 3. TypeError — тоже может быть валидным кейсом Например, если дата отсутствует: name,start,end Q1,2025-01-01, Тут программа получает None вместо даты. Это проблема входных данных, а не вашего кода — обработать её можно. 4. KeyError — не всегда стоит ловить Если пользователь ошибся в заголовке: name,Start,end (большая S вместо маленькой) код выдаст: KeyError: 'start' И это… полезная ошибка. Если вы её поймаете и покажете: > Invalid date on line 1 пользователь вообще не поймёт, что проблема в заголовке. Лучше проверить headers заранее: required = ["name", "start", "end"] for col in required: if col not in reader.fieldnames: print(f"Missing column: {col}") sys.exit(1) Когда except Exception всё-таки нормален Есть исключение из правила: mission-critical код. Например, вы обрабатываете 1000 файлов и не хотите, чтобы один битый файл остановил весь процесс. Тогда такой код оправдан: for path in files: try: process(path) except Exception as e: log_error(path, e) Один файл упал → идём дальше. Главное — логировать ошибку, а не silently ignore. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Открыть канал и посмотреть медиа🐍 TIL: в Python можно вручную разбудить lazy import Недавно в Python появились lazy imports — модуль не импортируется сразу, а загружается только тогда, когда он реально нужен. То есть: lazy import json не загружает json сразу в память. Вместо модуля вы получаете специальный объект-заглушку: globals()["json"] # 👇 И тут есть неожиданный трюк. Оказывается, lazy import можно зарезолвить вручную: lazy import json resolved_json = globals()["json"].resolve() После этого: resolved_json.dumps({"x": 1}) будет работать как обычный модуль json. Что интересно — lazy import сам не исчезает: globals()["json"] # То есть Python, вероятно, делает примерно следующее под капотом: globals()["json"] = globals()["json"].resolve() когда понимает, что модуль уже реально понадобился. Самый интересный вопрос здесь: что именно триггерит пробуждение lazy import? Скорее всего, это происходит через __getattribute__ / __getattr__, но сам механизм внутри выглядит довольно элегантно. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Открыть канал и посмотреть медиа🧠 Один из лучших способов понять алгоритмы — не читать про них, а смотреть как они работают шаг за шагом. Наткнулись на классный Algorithm Visualizer — интерактивный проект, где можно буквально увидеть алгоритмы в действии. 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Открыть канал и посмотреть медиаДо 31 мая можно забрать любой курс Proglib Academy со скидкой 40% Если давно хотели прокачаться в Python, ML, алгоритмах или AI-агентах, сейчас самое время выбрать программу и начать обучение по сниженной цене. 🎁 Разработка AI-агентов — от 49.000 ₽ (вместо 69.000 ₽) Практический курс по разработке AI-агентов для автоматизации задач, работы и собственных проектов 🎁 Курс AgentOps — 129.000 ₽ (вместо 149.000 ₽) Для разработчиков и LLM-инженеров, которые хотят внедрять AI-логику в бэкенд и сохранять стабильность сервиса. 🎁 Математика для разработки AI-моделей — 23.990 ₽ (вместо 31.990 ₽) Практическая база по математике для анализа данных, ML и дальнейшего развития в AI. 🎁 Математика для Data Science — от 29.990 ₽ (вместо 39.990 ₽) Курс для тех, кто хочет решать задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе. 🎁 ML для старта в Data Science — 28.990 ₽ (вместо 38.990 ₽) Разберётесь в машинном обучении: от базовых понятий и линейных моделей до ансамблей, бустинга и рекомендательных систем. 🎁 Основы IT для непрограммистов — 16.990 ₽ (вместо 28.990 ₽) Курс для IT-рекрутеров, маркетологов, проджектов, продактов и всех, кто работает с IT, но не пишет код. 🎁 Архитектуры и шаблоны проектирования — 27.990 ₽ (вместо 37.900 ₽) Освоите основные паттерны проектирования и прокачаете навыки архитектора программного обеспечения. 🎁 Специалист по ИИ — 89.000 ₽ (вместо 113.900 ₽) Курс для тех, кто хочет получить профессию в сфере ИИ, собрать портфолио из 5 проектов и научиться разрабатывать сложных AI-агентов. 🎁 Алгоритмы и структуры данных — 33.990 ₽ (вместо 57.990 ₽) Подготовитесь к алгоритмическим собеседованиям, разберёте структуры данных и научитесь писать более эффективный код. 🎁 Программирование на языке Python — 27.990 ₽ (вместо 47.390 ₽) Освоите Python на практике: без сухой теории, с пошаговой прокачкой навыков и итоговым проектом в портфолио. 🙌 Выбирайте курс по ссылке, оставляйте заявку, и менеджер поможет подобрать программу под ваши цели — Ссылка скрыта
Открыть канал и посмотреть медиаБиблиотека питониста #развлекалово
Открыть канал и посмотреть медиа🤖 AI меняет работу разработчиков — вопрос только в масштабе С 8 апреля по 8 мая 2026 года прошло исследование State of Web Dev AI 2026, в котором приняли участие 7 258 разработчиков. И независимо от отношения к AI — за или против — кажется, почти все согласны в одном: ИИ уже серьёзно влияет на то, как мы пишем код, учимся и строим продукты. Исследование собрало много интересных данных о том, как именно меняется работа разработчиков — от ежедневного использования AI-инструментов до отношения к будущему профессии. 👇 Что изменилось у вас за последний год? 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Открыть канал и посмотреть медиаБиблиотека питониста #развлекалово
Открыть канал и посмотреть медиа🚀 List comprehensions знают все. Но используют их максимум на 20% возможностей Вот приёмы, которые реально стоит добавить в свой арсенал 👇 1️⃣ Условие не только в конце Обычно comprehension используют как фильтр, но if может стоять и в начале — тогда это уже замена значения: # фильтр — оставляем только чётные [x for x in nums if x % 2 == 0] # замена — нечётные превращаем в 0 [x if x % 2 == 0 else 0 for x in nums] 📌 Разница только в позиции if, но смысл полностью меняется. 2️⃣ Flatten — развернуть список списков matrix = [[1,2,3],[4,5,6],[7,8,9]] flat = [x for row in matrix for x in row] 👉 читается как обычный цикл: «для каждой строки → для каждого элемента» 3️⃣ Dict и set comprehensions # инверсия словаря d = {'a': 1, 'b': 2} inv = {v: k for k, v in d.items()} # уникальные домены emails = ['[email protected]', '[email protected]', '[email protected]'] domains = {e.split('@')[1] for e in emails} 4️⃣ Генератор вместо списка (когда данных много) # список — всё в памяти total = sum([x**2 for x in range(10_000_000)]) # генератор — ленивые вычисления total = sum(x**2 for x in range(10_000_000)) ⚡ Вторая версия экономит память в разы — критично для больших данных. 5️⃣ Walrus-оператор := внутри comprehension results = [ y for x in data if (y := heavy_function(x)) > 0 ] 👉 значение считается один раз и сразу используется в условии. 💬 Какой приём был для вас новым? 📍 Навигация: Вакансии • Задачи • Собесы Библиотека питониста #буст
Открыть канал и посмотреть медиа🐸 Библиотека задач по Data Science
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!