Совет по Python: не глушите все ошибки
Ловить все исключения подряд это как пить обезболивающее, не сходив к врачу. Боль ушла но причина осталась.
Если этот сигнал заглушить, проблема никуда не денется просто вы о ней не узнаете, пока всё не бахнет в проде❓
Тихая катастрофа:
Так делать плохо: ошибка была, но вы её скрыли. Нет логов, нет уведомлений, нет понимания, что вообще произошло🔔
Обрабатываем то, что понимаем:
Все остальные исключения лучше не ловить без надобности. Пусть они “всплывут”, попадут в APM/логирование и уведомят команду — так вы хотя бы узнаете, что что-то сломалось🧠
✈️ Python Ninja
Ловить все исключения подряд это как пить обезболивающее, не сходив к врачу. Боль ушла но причина осталась.
🔄 Боль → сигнал, что что-то не так (например, сидишь на горячей плите).🔄 Исключение → сигнал, что в коде что-то сломалось.
Если этот сигнал заглушить, проблема никуда не денется просто вы о ней не узнаете, пока всё не бахнет в проде
Тихая катастрофа:
try:
process_payment()
except Exception:
# Был ли пользователь реально списан?
# Получил ли он доступ к платным функциям?
# Упала ли база данных? Кто знает!
pass
Так делать плохо: ошибка была, но вы её скрыли. Нет логов, нет уведомлений, нет понимания, что вообще произошло
Обрабатываем то, что понимаем:
try:
process_payment()
except PaymentError as e:
# Ошибка при оплате — обрабатываем
logger.error(f"Ошибка оплаты: {e}")
# Остальные исключения будут переданы для уведомления команды
Все остальные исключения лучше не ловить без надобности. Пусть они “всплывут”, попадут в APM/логирование и уведомят команду — так вы хотя бы узнаете, что что-то сломалось
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝3
Деплой через таро теперь официально
Есть сервис, который предлагает предсказывать исход деплоя с помощью карт. Да, звучит как шутка и это она и есть
Но если честно, иногда такие предсказания выглядят не менее точными, чем реальные прогнозы🔞
☝️ Ссылка источник
✈️ Python Ninja
Есть сервис, который предлагает предсказывать исход деплоя с помощью карт. Да, звучит как шутка и это она и есть
Но если честно, иногда такие предсказания выглядят не менее точными, чем реальные прогнозы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Объединение словарей в Python
Иногда нужно объединить два словаря в один. Вот два простых способа, как это можно сделать👇
Method 1 — оператор
Method 2 — оператор распаковки
📝 Оба способа работают одинаково — создают новый словарь, объединяя пары ключ–значение. Метод с | появился в Python 3.9, а способ с ** подходит и для более ранних версий
✈️ Python Ninja
Иногда нужно объединить два словаря в один. Вот два простых способа, как это можно сделать
Method 1 — оператор
|# Используем оператор объединения ( | ).
names_dict = {"kelly": 23,"Derick": 14, "John": 7}
another_names_dict = {"Ravi": 45, "Mpho": 67}
combined_dict = names_dict | another_names_dict
print(combined_dict)
Вывод:
{'kelly': 23, 'Derick': 14, 'John': 7, 'Ravi': 45, 'Mpho': 67}
Method 2 — оператор распаковки
**# Используем оператор распаковки ( ** )
names_dict = {"kelly": 23,"Derick": 14, "John": 7}
another_names_dict = {"Ravi": 45, "Mpho": 67}
combined_dict = {**names_dict, **another_names_dict}
print(combined_dict)
Вывод:
{'kelly': 23, 'Derick': 14, 'John': 7, 'Ravi': 45, 'Mpho': 67}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Хабр торт принес увлекательную статью разбор уязвимости в ядре Linux
В свежем разборе автор шаг за шагом исследует CVE-2024-50264 — хитрую race condition в подсистеме AF_VSOCK, демонстрируя, как на тестовой площадке kernel-hack-drill выстраивался концепт-эксплойта, с тонкими пояснениями по use-after-free, null-deref и работе kworker
Отличный материал для тех, кто хочет понять реальные механики escalation of privileges и методы защитных проверок👀
☝ Ссылка источник
✈️ Python Ninja
В свежем разборе автор шаг за шагом исследует CVE-2024-50264 — хитрую race condition в подсистеме AF_VSOCK, демонстрируя, как на тестовой площадке kernel-hack-drill выстраивался концепт-эксплойта, с тонкими пояснениями по use-after-free, null-deref и работе kworker
Отличный материал для тех, кто хочет понять реальные механики escalation of privileges и методы защитных проверок
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Принес вам интересную игрушку «CyberOps Terminal»
Это бесплатная браузерная игра где нужно печатать команды так, будто вы настоящий хакер из фильмов. Ошибся — система поднимает тревогу, печатаешь быстро и точно — выигрываешь
Отличный способ разогнать пальцы и посоревноваться с коллегами по работе😎
☝️ Ссылка источник
✈️ Python Ninja
Это бесплатная браузерная игра где нужно печатать команды так, будто вы настоящий хакер из фильмов. Ошибся — система поднимает тревогу, печатаешь быстро и точно — выигрываешь
Отличный способ разогнать пальцы и посоревноваться с коллегами по работе
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Сокровищница для разработчиков «GeeksforGeeks»
Образовательный ресурс где можно найти всё, что нужно для изучения программирования. Там куча полезных статей, задачек, гайдов и даже курсов от простого до очень сложного😍
☝️ Ссылка источник
✈️ Python Ninja
Образовательный ресурс где можно найти всё, что нужно для изучения программирования. Там куча полезных статей, задачек, гайдов и даже курсов от простого до очень сложного
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2
Знаете ли вы, что в Python можно создавать собственные итераторы
Всё, что нужно сделать это реализовать собственные методы iter и next. На картинке выше представлен пример
✈️ Python Ninja
Всё, что нужно сделать это реализовать собственные методы iter и next. На картинке выше представлен пример
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Python: классика vs лаконичность или как вы обычно группируете значения по ключам?
👇 Традиционный способ:
😘 А можно короче и элегантнее:
Результат в обоих случаях:
Лично я всё чаще ловлю себя на втором варианте меньше кода, меньше шума🙃
А вы какой используете: классический или «гениальный»?
✈️ Python Ninja
data = {}
items = [('a', 1), ('b', 2), ('a', 3)]
for key, value in items:
if key not in data:
data[key] = []
data[key].append(value)data = {}
for key, value in items:
data.setdefault(key, []).append(value)Результат в обоих случаях:
{'a': [1, 3], 'b': [2]}Лично я всё чаще ловлю себя на втором варианте меньше кода, меньше шума
А вы какой используете: классический или «гениальный»?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Как проверить, является ли строка печатаемой или нет в Python 🤯
✈️ Python Ninja
>>> "123".isprintable()
True
>>> "abc".isprintable()
True
>>> "\t\n".isprintable()
False
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Список вопросов по Python который стоит пройти перед собеседованием
Принёс большую подборку вопросов и ответов для подготовки к интервью Python-разработчика. Здесь собраны вопросы по основным темам Python, которые часто встречают на интервью
Можно пройтись по ним и освежить знания😘
☝️ Ссылка источник
✈️ Python Ninja
Принёс большую подборку вопросов и ответов для подготовки к интервью Python-разработчика. Здесь собраны вопросы по основным темам Python, которые часто встречают на интервью
Можно пройтись по ним и освежить знания
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Полезная находка список идей для новичков в программировании
Можно выбрать любую простую игру или задачу и попробовать написать программу самому. Есть загадки, шифры, мини-игры, симуляции и всякие прикольные штуки
Подходит для тех, кто выучил основы Python и хочет практиковаться😮
☝ Ссылка источник
✈ Python Ninja
Можно выбрать любую простую игру или задачу и попробовать написать программу самому. Есть загадки, шифры, мини-игры, симуляции и всякие прикольные штуки
Подходит для тех, кто выучил основы Python и хочет практиковаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👍2🙈2🗿2
Бесплатный практический курс по GPT и LLM разбор от нуля до продвинутого
Ловите интерактивный учебный проект, где показывают, как устроены большие языковые модели, начиная с самого простого варианта GPT и постепенно усложняя реализацию
Главная идея обучение через эволюцию одной модели: проходишь несколько версий одного и того же «мини-GPT», реализованных разными способами💃
☝️ Ссылка источник
✈ Python Ninja
Ловите интерактивный учебный проект, где показывают, как устроены большие языковые модели, начиная с самого простого варианта GPT и постепенно усложняя реализацию
Главная идея обучение через эволюцию одной модели: проходишь несколько версий одного и того же «мини-GPT», реализованных разными способами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4