Каталог каналов Мои подборки Мои каналы Поиск постов Рекламные посты
Инструменты
Каталог TGAds Мониторинг Детальная статистика Анализ аудитории Бот аналитики
Полезная информация
Инструкция Telemetr Документация к API Чат Telemetr
Полезные сервисы

Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Постоянный репозиторий по Python»

Постоянный репозиторий по Python
338
0
1
0
383
Подписчики
Всего
1 851
Сегодня
-2
Просмотров на пост
Всего
226
ER
Общий
9.75%
Суточный
6.9%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 338 постов
Смотреть все посты
Пост от 16.05.2026 10:40
97
0
0
Почему try/except – это не замена if
Очень частая ошибка начинающих:
value = input()
 
try:
    if int(value) > 10:
        print("OK")
except:
    print("Ошибка")
 
На первый взгляд всё нормально.
Но здесь есть серьёзная проблема.

В чём ошибка подхода?

except начинает ловить вообще всё подряд:
- ошибки преобразования
- ошибки логики
- опечатки
- ошибки в коде
- даже системные исключения

И в итоге реальные проблемы могут просто скрыться.

Как делают правильно
 
value = input()
 
if value.isdigit():
    number = int(value)
 
    if number > 10:
        print("OK")
else:
    print("Введите число")
 
Главное правило

👉 if — для ожидаемой логики
👉 try/except — для действительно исключительных ситуаций

Когда try/except нужен
Например:

try:
    with open("data.txt") as f:
        data = f.read()
except FileNotFoundError:
    print("Файл не найден")
 
Здесь ошибка действительно может произойти во внешней среде.
 
Самая опасная конструкция ❌
 
except:
 
Почему это плохо:
скрывает реальные ошибки
усложняет отладку
может ломать логику программы
 
Правильнее так ✔️
 
except ValueError:
 
То есть ловить конкретное исключение.
 
Почему это особенно важно в Data Science / ETL

Иногда pipeline «успешно работает»,
но половина ошибок просто тихо проглатывается через:
 
except:
    pass
 
А потом начинается магия:

- данные пропадают
- метрики ломаются
- результаты «странные»
 
Краткое правило

- ожидаемая ситуация → if
- неожиданная ошибка → try/except
- никогда не писать голый except
4
🔥 1
🥰 1
Пост от 12.05.2026 10:00
234
0
0
👍 2
🔥 1
😁 1
Пост от 12.05.2026 10:00
219
0
0
Пост от 05.05.2026 10:40
198
0
0
Почему list comprehension – это не просто «короче», а принципиально другой стиль мышления

Очень часто можно увидеть такой код:

result = []

for x in data:
if x > 0:
result.append(x * 2)

Работает. Всё понятно. Но это «императивный» стиль – шаг за шагом.

Как это выглядит в Python-стиле

result = [x * 2 for x in data if x > 0]

И вот здесь происходит важное изменение:
👉 мы описываем что хотим получить, а не как идти по шагам

В чём реальная разница?

Это не просто «короче»:
• код становится декларативным
• легче читать «слева направо»
• проще комбинировать операции
• меньше промежуточных состояний

Почему это важно в аналитике и data-инженерии

Когда работаешь с данными, часто есть цепочка:
• фильтрация
• преобразование
• агрегирование

И list comprehension позволяет описывать это компактно:

[x["price"] for x in orders if x["status"] == "paid"]

Но есть ловушка ⚠️
Когда логика становится сложной — код превращается в кашу:

[x * 2 if x > 0 else x - 2 for x in data if x % 2 == 0]

👉 Это уже трудно читать

Когда использовать
✔️ простые фильтры
✔️ простые преобразования
✔️ короткие цепочки логики

Когда НЕ стоит
❌ сложные условия
❌ вложенные конструкции
❌ длинные выражения

В таких случаях обычный for читается лучше.

Главное правило
list comprehension – это не «сокращение кода», это способ мыслить через преобразование коллекций.

Вывод
Хороший Python-код – это не самый короткий код, а самый понятный при первом чтении.
🤝 4
1
👍 1
🔥 1
Пост от 03.05.2026 12:16
226
0
0
Пост от 03.05.2026 12:16
211
0
0
2
Пост от 02.05.2026 10:19
258
0
1
Почему print()– плохой инструмент для отладки (и что использовать вместо)

Очень привычный подход:
print("x =", x)
print("result =", result)

Быстро, удобно… но у этого есть проблемы.

В чём проблема print()?

❌ Засоряет код
После отладки такие строки часто остаются
❌ Нет контроля
Нельзя легко отключить вывод
❌ Нет уровней важности
Ошибка и обычное сообщение выглядят одинаково
❌ Плохо масштабируется
В большом проекте превращается в хаос

Как делают правильно

Используют модуль logging:

import logging

logging.basicConfig(level=logging.INFO)

logging.debug("Это отладка")
logging.info("Обычная информация")
logging.warning("Предупреждение")
logging.error("Ошибка")

Почему это лучше?

✅ Гибкость
Можно включать/выключать уровни логов
✅ Контроль

Логи можно писать:
• в файл
• в консоль
• во внешние системы

✅ Структура
Есть уровни:
• DEBUG
• INFO
• WARNING
• ERROR

Ключевой момент

logging.debug("msg")

НЕ выполнится, если уровень выше.
👉 Это экономит ресурсы и делает код чище.

Где это особенно важно
• backend-сервисы
• data pipelines
• ETL-процессы
• долгие вычисления
• системы с пользователями

Когда print() всё-таки норм

✔️ быстрые проверки
✔️ обучение
✔️ одноразовые скрипты

Краткое правило
• маленький скрипт → можно print()
• проект / сервис → только logging

Вывод
print() – это инструмент новичка.
logging – инструмент разработчика.
1
👍 1
🔥 1
Смотреть все посты