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

Связь: @sfoninja
Download Telegram
Равенство значений в Python

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Варианты
Anonymous Quiz
13%
A
73%
B
11%
C
4%
D
🏆4
Совет по Python

Не преобразовывай итераторы в списки только ради срезов. Это тратит память и время впустую 😬

Вместо этого используй islice из модуля itertools — результат тот же, но без лишних затрат 💪

from itertools import islice

# Плохо: загружает всё в память
data = list(big_file_iter)
first_10 = data[:10]

# Хорошо: берёт только первые 10 элементов
first_10 = list(islice(big_file_iter, 10))


Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Подвох с параметрами по умолчанию в Python

def add(item, items=[]):
items.append(item)
return items

add("apple") # ['apple']
add("banana") # ['apple', 'banana']


Почему так?

➡️ Важно помнить: значения по умолчанию создаются при определении функции, а не при каждом вызове.

Поэтому если использовать изменяемый объект (например, список), он будет один и тот же для всех вызовов.

Правильный способ:

def add(item, items=None):
if items is None:
items = []
items.append(item)
return items

Теперь всё будет как ожидается 💡

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Хочешь ворваться в мир кибербеза лови подгон «90DaysOfCyberSecurity»

Твой личный план прокачки на 90 дней направленный на развитие ключевых навыков в области кибербезопасности. Каждый день новые темы от сетевых основ до анализа вредоносного ПО и пентеста

Всё удобно сделано: задания, готовые ресурсы и советы по изучению

Ставь лайк и стартуй ❤️

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

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Ловите годноту «VulnHub» платформа для практики реальных атак в безопасной среде

Бесплатная библиотека преднамеренно уязвимых виртуальных машин («boxes»), которые можно скачать и запустить в VirtualBox/VMware, чтобы отрабатывать сканирование, эксплуатацию и эскалацию привилегий в контролируемой лаборатории

Идеально подходит для обучения, подготовки к CTF и оценки практических навыков специалистов по кибербезопасности 😎

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

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Хочешь понять 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