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

Связь: @sfoninja
Download Telegram
Масштабное руководство по работе с промптами для разработчиков

Десятки практик, примеры промптов, готовые сценарии и сравнения «плохих» и «хороших» запросов. Отличный инструмент, чтобы научиться получать от ИИ максимум пользы 📝

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Подборка из 150 часто задаваемых вопросов для собеседований по Python

Разбиты по уровням: новичок, середнячок и гуру. Всё с ответами: синтаксис, типы, ООП, библиотеки и всякие хитрые штуки

Удачного тебе собеседования 🎁

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
В Python переменные это скорее стикеры а не коробки

Переменная не хранит значение внутри себя, а просто указывает на него

Если изменить список изменения увидят обе переменные. Со «стикерами» это выглядит логично: вы просто приклеили два ярлыка к одному объекту.

А вот если думать как о коробках получается какая-то магия: будто две разные коробки внезапно меняются одновременно

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Есть число с плавающей точкой в Python и нужно вывести его как процент используй формат % в f-строке

x = .023
print(f'{x:.2%}') # 2.30%

x = .02375
print(f'{x:.2%}') # 2.38% -- округляется!

x = 1.02375
print(f'{x:.2%}') # 102.38%


✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
😁32
Ловите подгон коллекция интерактивных лабораторий от KodeKloud

Бесплатная платформа с интерактивными лабораториями для практики Linux и Kubernetes. Здесь можно отточить навыки администрирования, работы с контейнерами и облачными технологиями через реальные задания в браузере, без установки дополнительного ПО 😌

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

✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Сокровищница изучения 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