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

Связь: @sfoninja
Download Telegram
Этот проект представляет собой полный курс по Python — от нулевого уровня до backend-разработки, который создавался в прямом эфире на Twitch.

Покрывает основы Python, продвинутые темы и разработку backend-приложений.
Включает создание REST API с аутентификацией и интеграцией с базой данных.
Весь код организован по директориям: Basic, Intermediate и Backend.
Видео-уроки содержат таймкоды для каждой темы.

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Готовимся к собеседованию позиции Middle и Senior

Отличный комплект для подготовки к техническим интервью по Python.

Первый материал - большой обзор на Хабре с вопросами, которые реально задаются на собеседованиях: Python, алгоритмы, HTTP, Git, SQL, Django, Flask, многопоточность, тестирование и др.

Второй ресурс: GitHub-репозиторий с подробными ответами и объяснениями по большинству этих тем. Вместе они станут отличной базой для подготовки к интервью уровня Middle и Senior.

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Бесплатный гайд по GitHub новичкам

Освоить GitHub - один из первых шагов в карьере разработчика. В официальном руководстве собраны ключевые темы: от создания репозитория до командной работы через Pull Request.

Хороший старт для студентов, джунов и всех, кто хочет программировать ❤️❤️

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

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Бесплатная книга «Python for Data Analysis третье издание»

Современный и практичный гид по работе с данными на Python, идеально подходящий для аналитиков, которые только начинают свой путь, и разработчиков, стремящихся освоить науку о данных через код

Книга включает живые примеры, реальные кейсы и достаточное внимание к практическим нюансам работы с данными. Материалы и примеры доступны на GitHub

Ставь лайкос и сохраняй в закладки ❤️

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

✈️ 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
1
Варианты
Anonymous Quiz
21%
A
27%
B
35%
C
17%
D
Python шпаргалка: работа со списками

Полезная подборка примеров: от базовых методов (append, pop, sort) до встроенных функций (sum, max, enumerate, map) с пояснениями

Отличный справочник если часто работаешь со списками и хочется быстро вспомнить нужный приём

Ставь лайк если полезно ❤️

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

На GitHub собрана масштабная база материалов по Python: от базового синтаксиса до анализа данных и ML-проектов. Тут есть всё: объяснения основ, куча примеров, задачки и даже мини-проекты по машинному обучению

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

Лайк на базу 👦

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Если вы новичок в Python остановитесь и внимательно посмотрите 👇

НИКОГДА не изменяйте список во время итерации по нему

Когда вы изменяете список в процессе обхода, итератор «теряется». Он не понимает, что список изменился прямо во время его работы.

Например, этот код работает неправильно:
items = [1, 2, 2, 3, 4]
for item in items:
if item == 2:
items.remove(item)

print(items)
# Output: [1, 2, 3, 4]


Мы используем метод remove(), чтобы удалить все двойки из списка. Но, как видно из результата, одна 2 всё равно остаётся.

Почему так происходит? Когда вы удаляете элемент из списка, все элементы сдвигаются влево. Но цикл продолжает идти вперёд по индексам. В итоге происходит следующее:
первая 2 находится и удаляется

вторая 2 сдвигается на её место

цикл переходит к следующему индексу

и эта 2 просто пропускается


Правильный способ итерироваться по копии списка:
for item in items[:]:
if item == 2:
items.remove(item)

print(items)
# Output: [1, 3, 4]


Когда вы проходите по копии (поверхностной копии), индексы исходного списка не «сбиваются».

🔥 Ещё лучше использовать генератор списка (list comprehension):
items = [x for x in items if x != 2]


👑 Запомните: никогда не изменяйте список (или любую другую коллекцию) во время прямой итерации по нему. Итератор не умеет корректно работать со структурными изменениями:

он может пропускать элементы

обрабатывать один и тот же элемент дважды

или даже вызывать ошибку RuntimeError (например, в словарях)


Это плохая практика

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Подборка ресурсов по MLOps для тех, кто хочет разобраться, как ML-системы доводят до production.

https://github.com/visenger/awesome-mlops

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Совет по Python: Использование словаря в качестве оператора match-switch

Одна из интересных особенностей словарей — их можно использовать как операторы switch. Этот подход удобен в простых сценариях принятия решений, где нужно сопоставить выбор с определённым действием или значением

В приведённом примере словарь switch_dict сопоставляет дни недели с задачами. Если день недели существует в словаре как ключ, возвращается соответствующая задача. Если день не найден, используется значение по умолчанию "invalid option", переданное в метод get(). Такой подход особенно полезен, когда у вас ограниченное количество вариантов и нужно обрабатывать их эффективно

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3
SQL в Python: Сравнительное руководство по работе с данными

Знаешь SQL и хочешь понять, как делать то же самое в Pandas? Это руководство покажет как привычные SQL-запросы выглядят в мире Python 👊

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Полезная тулза «Port Kill» приложение для быстрого управления процессами

Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах

Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу

Сохраняем пригодится

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Упростить логирование в 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
👍32
«Освоение модульного тестирования с использованием Pytest» курс на Stepik

Сегодня умение писать тесты ценится почти так же, как и умение писать сам код. Если pytest, fixtures, CI/CD и coverage всё ещё вызывают вопросы самое время это исправить

Программа курса:

• Pytest: от базовых тестов до CI/CD
• fixtures, mocking, parametrization
• Flask/API testing
• Selenium и UI тестирование
• Docker + Docker Compose
• GitHub Actions
• coverage и отчёты
• debugging и refactoring тестов

Курс построен вокруг практики: много примеров, готовых кейсов и разборов рабочих сценариев

48 часов действует скидка 25%

↗️ Пройти курс на Stepik
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
Полезный ресурс ML разработчиков справочник по машинному обучению

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

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

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

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

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