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

Связь: @sfoninja
Download Telegram
Упростить логирование в Python можно с помощью Loguru 🪵

Стандартный модуль logging умеет почти всё, но даже базовая настройка часто требует handlers, format strings и дополнительного конфигурационного кода.

Loguru делает логирование по ощущениям почти таким же простым, как print(), при этом поддерживает:
timestamps;
уровни логов;
запись в файлы;
rotation;
retention;
подробный вывод исключений.

В статье сравниваются оба подхода и показывается, как Loguru позволяет сделать типичные задачи логирования короче и читабельнее.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Фатальная ошибка в pandas

Такой код не фильтрует значения NULL или None:
df[df['user_id'] != None]


В pandas пропущенные значения представлены как NaN или None, но оператор != работает с ними не так, как многие ожидают.

Поэтому такой фильтр не удаляет все пропущенные значения.

Вместо этого используйте:
df[df['user_id'].notna()]


или
df.dropna(subset=['user_id'])


Для проверки пропущенных значений в pandas всегда используйте методы isna() и notna(), а не операторы == или !=.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
В Python обычный zip() может незаметно «съесть» часть данных, если списки разной длины. 🐍

Например:
x = [1, 2, 3, 4, 5]
y = ['a', 'b', 'c']

list(zip(x, y))
# [(1, 'a'), (2, 'b'), (3, 'c')]


zip()
останавливается, как только заканчивается самый короткий список — поэтому 4 и 5 просто не попадут в результат.

Если нужно сохранить все элементы, есть itertools.zip_longest():
import itertools

list(itertools.zip_longest(x, y))
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, None), (5, None)]


Недостающие значения он по умолчанию заполняет None.

Небольшая штука, но полезно помнить, когда объединяете данные из источников разной длины.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Совет по Python

Возвращаем несколько значений из функции с помощью namedtuple

По умолчанию функция возвращает одно значение, но иногда нужно вернуть несколько. Один из удобных способов — использовать namedtuple из модуля collections. Это позволяет задать структуру возвращаемых значений, делая код более читаемым и понятным

Пример:
from collections import namedtuple

def multiple_values():
MyTuple = namedtuple("MyTuple", ["name", "age", "car"])
name = "Mark"
age = 21
car = "Ford"
return MyTuple(name, age, car)

# Использование функции
result = multiple_values()
print(f"Name: {result.name}, Age: {result.age}, Car: {result.car}")

Вывод:
Name: Mark, Age: 21, Car: Ford


Преимущества:

Четкая структура: поля name, age и car заданы явно

Доступ к значениям по именам (result.name), а не по индексам

Улучшает читаемость и поддерживаемость кода

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Бесплатный тренажер по Bash и Linux

Если давно хотели подтянуть работу с терминалом, обратите внимание на ShellGym. Это набор практических упражнений, который поможет освоить основные команды Linux и научиться решать задачи в командной строке.

Отличный ресурс для новичков и тех, кто хочет освежить знания чтобы стать увереннее в Linux.

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
Учебный сайт по программированию на Python

Он представляет собой бесплатный онлайн-учебник, который охватывает путь от самых базовых понятий до более сложных инструментов и библиотек

Удобно использовать и как стартовую точку, и как быстрый справочник по ключевым темам

Забираем за печеньки 🍪🍪

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Полезный ресурс ML разработчиков справочник по машинному обучению

Шпаргалка в виде структурированной документации с краткими и понятными объяснениями: от линейной регрессии и градиентного спуска до нейросетей, функций активации и оптимизаторов

Каждая тема сопровождается схемами, формулами и примерами, что делает ресурс полезным как для новичков, так и для практикующих специалистов

Быстрый буст к твоей ML-карме 🧠

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Вы когда-нибудь использовали коллекцию deque в Python?

deque специально разработана для быстрого, эффективного по памяти и потокобезопасного добавления и удаления элементов с обоих концов.

deque можно даже циклически сдвигать!

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
collections.ChainMap — встроенный класс Python, который объединяет несколько словарей или других отображений в единое обновляемое представление.

Вместо слияния словарей и создания новых структур данных в памяти он связывает их по ссылке, позволяя выполнять поиск и управлять ими как единым целым.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Путь в data science от Аллена Дауни книга «Elements of Data Science»

Бесплатное интерактивное пособие, которое объясняет науку о данных через реальные задачи и код на Python

Всё шаг за шагом: от базовых Python структур до визуализации, регрессии и статистики и всё в интерактивных блокнотах, где можно сразу писать и запускать код

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

Сохраняем за лайк ❤️

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Декораторы и регистр Python

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Варианты
Anonymous Quiz
68%
A
12%
B
6%
C
14%
D
Подборка бесплатных онлайн-курсов «PanXProject»

Настоящая сокровищница бесплатных возможностей для прокачки! Сотни курсов по разным темам бери, учись, прокачивайся и добавляй в резюме, а если найдёшь что-то новое можно закинуть в репозиторий и поделиться с другими 👍

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Совет по Python:

Функция locals()

Встроенная функция locals() возвращает словарь, представляющий текущую локальную таблицу символов.

Таблица символов — это структура, в которой Python хранит все имена (переменные, функции, классы и т.д.), доступные в определённой области видимости.

Когда locals() вызывается внутри функции, она возвращает словарь со всеми локальными переменными, определёнными в рамках этой функции.

В примере переменные z и x определены локально внутри функции. Переменная y = 20 является глобальной и не относится к области видимости my_func(). Поэтому locals() внутри my_func не включает y

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Когда «разобраться в ИИ» не просто слова: парень пересобрал GPT-20B

Пока одни всё обсуждают нейросети, другие берут и пишут их архитектуру сами. На GitHub появился репозиторий с реализацией GPT-OSS-20B на чистом PyTorch: attention, RoPE, MoE, кеши и вся тяжёлая артиллерия LLM внутри

Не очередной «чат-бот», а реальный конструктор большой модели. Для тех, кто хочет не пользоваться ИИ, а понимать, как он дышит 😱

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👀1
Знали ли вы, что в Python можно читать текстовые файлы с помощью pathlib?

Вот как это сделать:

✈️ 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
🤝2
Варианты
Anonymous Quiz
54%
A
19%
B
13%
C
14%
D
Как распаковать кортеж, список и объект range с помощью одной звёздочки в Python.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
NVIDIA представила и открыла исходный код NOOA — нового фреймворка для создания ИИ-агентов.

Его главная идея — описывать агента как один Python-класс, а не разносить логику по промптам, схемам инструментов, колбэкам и графам выполнения.

В NOOA:
• методы — это действия агента;
• поля — его состояние;
• docstring становятся промптами;
• тип возвращаемого значения задаёт контракт ответа.

Самая интересная особенность — «пустые» методы. Если тело метода содержит только ..., его реализацию во время выполнения генерирует LLM. Если внутри есть обычный Python-код, он выполняется без участия модели. Так в одном классе сразу видно, где модель может принимать решения, а где поведение полностью детерминировано.

Ещё одна сильная сторона — работа с данными. Если методу передать список из 100 элементов, модель увидит только имя переменной, её тип, размер и несколько элементов с начала и конца. Все данные остаются в памяти процесса, а модель взаимодействует с ними через код, который пишет на лету. Благодаря этому ограничения начинают определяться не размером контекстного окна, а ресурсами машины, на которой выполняется код.

По словам NVIDIA, на SWE-bench Verified с GPT-5.5 NOOA набирает 82,2% против 78,6% у OpenCode, используя примерно вдвое меньше обращений к модели и токенов.

Статья: http://arxiv.org/abs/2607.20709
Репозиторий: http://github.com/nvidia-nemo/labs-OO-Agents

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