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

Связь: @sfoninja
Download Telegram
Сокровищница изучения Kubernetes: Fast-Kubernetes от теории к практике

Kubernetes всегда сложно «схватить» по кускам и этот репозиторий помогает быстро собрать целостную картину

Здесь не простая теория, а целый набор практических LAB’ов и cheat-sheet’ов, где разбираются ключевые сущности: Pods, Deployments, Services, ConfigMaps, Volumes, Ingress и многое другое

Хороший вариант для ускоренного погружения и закрепления базы 📚

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Сокровищница изучения алгоритмов: онлайн-книга Algorithms от Jeff Erickson

Не просто учебник а полноценный курс по алгосам с лекциями, задачками и теорией. Здесь собраны все ключевые темы: рекурсия, потоки, динамическое программирование, графы, NP-задачи, всё что по настоящему формирует твоё алгоритмическое мышление

Подойдёт не для «первого знакомства», а для тех, кто хочет выйти на уровень сильного инженера 📚

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Небольшой Python-трюк: как кастомизировать поведение списка

Класс UserList из модуля collections в Python используется для создания пользовательских объектов, работающих как список, но с кастомным поведением. Он выступает базовым классом, от которого можно наследоваться, если нужно реализовать собственные структуры данных со специализированными методами и логикой.

Допустим, вы хотите создать список с кастомным методом append(), разрешив добавлять только чётные числа. Код ниже показывает, как это можно реализовать через UserList.

В этом примере метод append() переопределён так, чтобы разрешать добавление только чётных чисел. Если передать нечётное число, выводится сообщение о том, что нечётные значения запрещены. Метод sort() также переопределён и всегда сортирует список в обратном порядке.

Когда экземпляр obj вызывается с аргументом 3, который является нечётным числом, выводится сообщение "Non-even numbers not allowed", а сам список остаётся без изменений

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Независимые списки после copy()

Что выведет код? 🤷‍♂️

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Варианты
Anonymous Quiz
34%
A
29%
B
11%
C
25%
D
3
Совет по Python

Многие проверяют начало строки через цикл, хотя Python позволяет сделать это гораздо короче и чище:
user_string = input()

starts = ("One", "Two", "Three")

# Не по-питоновски
for s in starts:
if user_string.startswith(s):
print("Совпадение найдено")
break

# По-питоновски
if user_string.startswith(starts):
print("Совпадение найдено")

startswith() и endswith() могут принимать кортеж значений это делает код компактнее, читаемее и избавляет от лишних циклов

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Ловите подгон книга «Think Python»

Бесплатная онлайн‑книга, которая вводит в мир Python с самых азов: от переменных и условий до рекурсии, классов и объектов, шаг за шагом раскрывая язык программирования, при этом позволяя сразу запускать код в браузере

Оставайтесь любопытными вот что я бы сказал начинающим 🔥

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

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Cовет по Python: не путайте has-a и is-a в ООП

При проектировании классов важно понимать разницу между композицией и наследованием:

has-a композиция. Один объект содержит другой объект или данные внутри себя.
class Person:
def __init__(self, name):
self.name = name # Person has-a name

Примеры:
Person has-a name
Car has-a color

is-a наследование
Один класс является разновидностью другого класса.
class Employee(Person):
pass # Employee is-a Person

Примеры:

Employee is-a Person
Car is-a Vehicle

Простое правило:

Если объект содержит что-то → композиция (has-a). Если объект является разновидностью чего-то → наследование (is-a). Во многих случаях композиция делает код гибче и проще для поддержки 🥥

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Cовет по Python: не превращайте тернарный оператор в квест на внимательность

Да, Python позволяет писать такие конструкции. Но чем больше условий в одной строке тем хуже читаемость

'A' if s >= 90 else 'B' if s >= 80 else 'C' if s >= 70 else 'F'


Простое правило: если условий 3 и больше лучше перейти на обычный if / elif / else. Тернарный оператор лучше оставить для коротких и понятных случаев:

• comprehensions
• lambda-выражений
return в одну строку

Короткий код не всегда хороший код 🎩

Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Первое и последнее вхождение символа

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
Варианты
Anonymous Quiz
25%
A
17%
B
49%
C
9%
D
Бесплатная онлайн книга "Automate the Boring Stuff with Python"

Руководство по использованию Python для автоматизации повседневных задач. Автор предлагает практические примеры, связанные с обработкой файлов, работой с электронными таблицами, веб-автоматизацией и другими прикладными задачами 📚

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Методы в Python хранятся на уровне класса, а не экземпляра

Тогда как Python находит метод при вызове x.m()? Правило ICPO:

Сначала Python ищет атрибут в экземпляре (_i_nstance).
Если не найден проверяет класс (_c_lass).
Дальше родительские классы (_p_arent).
В конце object, корневой базовый класс (_o_bject).

Именно поэтому метод можно определить один раз в классе, а использовать через любой экземпляр 🤓

✈️ 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
😁93❤‍🔥3
Наследование в Python меняет путь поиска атрибутов

Также известный как «method resolution order» (MRO):

class Child:
pass

Child.__mro__ # (__main__.Child, object)

class Child(Parent):
pass

Child.__mro__ # (__main__.Child, __main__.Parent, object)


То есть MRO показывает, в каком порядке Python будет искать методы и атрибуты: сначала в классе потомке, затем в родителях по цепочке, и в конце в базовом object 👋

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
Карманный AI-переводчик или полноценная LLM весом всего 440MB

Tencent продолжают продвигать тренд «маленьких, но мощных» моделей

Hy-MT1.5-1.8B-1.25bit это translation LLM, которая после экстремального сжатия весит всего около 440MB, но при этом поддерживает десятки языков и локальный запуск даже на мобильных устройствах

Такие модели показывают, что качественный перевод и серьёзные возможности LLM уже начинают помещаться буквально в кармане

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Сохраняйте это золото для изучения LLM

LLM Architecture Gallery это огромная коллекция архитектур современных AI-моделей с визуальными схемами и пояснениями

GPT, Llama, Qwen, DeepSeek, Gemma, Mistral, MoE, attention-механизмы, сравнение архитектур и полезные ресерчи всё собрано в одном месте

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

✈️ 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
🔥3
Варианты
Anonymous Quiz
46%
A
30%
B
18%
C
5%
D
👍3
Microsoft выкатили вводный мини-курс по созданию AI-агентов

AI-агенты сегодня становятся частью современной разработки, и этот курс помогает разобраться в теме системно

Авторы делают акцент на инженерном подходе: как проектировать поведение агентов, разделять планирование и выполнение, контролировать действия и строить системы, которые можно масштабировать

Хороший вход в тему без лишней воды ⌨️

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

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