Python Ninja | Программирование
6.92K subscribers
1.08K photos
99 videos
919 links
Канал для всех кто хочет освоить или прокачать навыки программирования на Python. Присоединяйся, чтобы стать настоящим Python Ninja!

Связь: @sfoninja
Download Telegram
Хочешь понять Kubernetes глубже

Попробуй этот подход. Есть серия гайдов, где кластер Kubernetes собирается буквально вручную. В этой части настройка worker-нод и всех необходимых компонентов

Такой формат помогает не просто пользоваться Kubernetes, а реально понять, как он устроен внутри 🏴‍☠

Ссылка источник

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3🎉2
Варианты
Anonymous Quiz
23%
A
68%
B
7%
C
1%
D
2
Вложенные функции и области видимости переменных

Что выведет код 👊

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Халява для аналитиков: бесплатные курсы по «Data Science» от Kaggle Learn

Бесплатные курсы по анализу данных, машинному обучению, Python, SQL и другим инструментам data science. Построены по принципу: «минимум теории — максимум кода»

Все задания выполняются в Jupyter ноутбуках прямо в браузере и есть система автоматической проверки 👍

☝️ Ссылка источник

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Совет по Python: не глушите все ошибки

Ловить все исключения подряд это как пить обезболивающее, не сходив к врачу. Боль ушла но причина осталась.

🔄Боль → сигнал, что что-то не так (например, сидишь на горячей плите).
🔄Исключение → сигнал, что в коде что-то сломалось.

Если этот сигнал заглушить, проблема никуда не денется просто вы о ней не узнаете, пока всё не бахнет в проде

Тихая катастрофа:
try:
process_payment()
except Exception:
# Был ли пользователь реально списан?
# Получил ли он доступ к платным функциям?
# Упала ли база данных? Кто знает!
pass

Так делать плохо: ошибка была, но вы её скрыли. Нет логов, нет уведомлений, нет понимания, что вообще произошло 🔔

Обрабатываем то, что понимаем:
try:
process_payment()
except PaymentError as e:
# Ошибка при оплате — обрабатываем
logger.error(f"Ошибка оплаты: {e}")
# Остальные исключения будут переданы для уведомления команды


Все остальные исключения лучше не ловить без надобности. Пусть они “всплывут”, попадут в APM/логирование и уведомят команду — так вы хотя бы узнаете, что что-то сломалось 🧠

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝3
Варианты
Anonymous Quiz
46%
A
44%
B
7%
C
3%
D
2
Особенности оператора is с целыми числами

Что выведет код? 📝

✈️ Python Ninja
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 — оператор |
# Используем оператор объединения ( | ).
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}



📝 Оба способа работают одинаково — создают новый словарь, объединяя пары ключ–значение. Метод с | появился в Python 3.9, а способ с ** подходит и для более ранних версий

✈️ Python Ninja
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Кто здесь босс? 🌟

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁92👀2
Сумма чисел из списка

Что выведет код

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Варианты
Anonymous Quiz
51%
A
11%
B
25%
C
13%
D
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
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Python: классика vs лаконичность или как вы обычно группируете значения по ключам?

👇Традиционный способ:

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]}


Лично я всё чаще ловлю себя на втором варианте меньше кода, меньше шума 🙃
А вы какой используете: классический или «гениальный»?

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Как проверить, является ли строка печатаемой или нет в Python 🤯

>>> "123".isprintable()
True

>>> "abc".isprintable()
True

>>> "\t\n".isprintable()
False


✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Ловушка extend: как список меняется внутри функции

Что выведет код? ☕️

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Please open Telegram to view this post
VIEW IN TELEGRAM