🐍 Укус питона 🐍
2.61K subscribers
976 photos
17 videos
284 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Зачем нужен декоратор @classmethod в Python и когда его использовать?

Декоратор @classmethod позволяет создавать методы, которые получают в качестве первого аргумента сам класс (cls), а не экземпляр (self). Это полезно для создания альтернативных конструкторов и работы с атрибутами класса.

Пример:

class Person:
def init(self, name):
self.name = name

@classmethod
def from_dict(cls, data):
return cls(data["name"])

data = {"name": "Alice"}
person = Person.from_dict(data)
print(person.name)


📌 В этом примере from_dict создает новый экземпляр класса Person, используя данные из словаря.

@classmethod удобно использовать, когда нужно создавать объекты разными способами или работать с классом напрямую, не привязываясь к конкретному экземпляру.
Функция zip() в Python

zip() — встроенная функция, которая объединяет несколько итерируемых объектов в кортежи. Она позволяет удобно "сшивать" списки вместе.

⚡️ Пример:

names = ['Анна', 'Борис', 'Виктор']
scores = [85, 90, 78]

result = list(zip(names, scores))
print(result)
# [('Анна', 85), ('Борис', 90), ('Виктор', 78)]


zip() полезен для параллельной обработки данных и создания пар значений из разных коллекций.

Если длины списков разные, объединение остановится на самом коротком.
⚡️ Что такое функции высшего порядка в Python?

Функция высшего порядка — это функция, которая принимает другую функцию в качестве аргумента или возвращает функцию в качестве результата. Это основа функционального программирования в Python.

➡️ Пример:

def apply(func, value):
return func(value)

def square(x):
return x * x

result = apply(square, 5)
print(result) # 25


🗣 В этом примере apply принимает функцию square и значение, применяя функцию к значению. Это позволяет строить более гибкий и переиспользуемый код.
⚡️ Что такое списковые включения (list comprehensions) в Python?

Списковые включения позволяют создавать списки компактно и понятно, объединяя цикл и условие в одну строку.

➡️ Пример:

# Создаём список квадратов чисел от 0 до 4
squares = [x**2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]


🗣 В этом примере используется одна строка вместо нескольких, чтобы получить новый список на основе преобразования элементов. Это делает код короче и чище.
⚙️ Python: Переменные и типы данных

В Python переменные создаются при первом присваивании значения. Тип данных определяется автоматически.

✔️ Основные типы:

int — целое число
float — число с плавающей точкой
str — строка
bool — логический тип (True или False)

➡️ Пример:

age = 25         # int
height = 1.75 # float
name = "Alice" # str
is_active = True # bool

print(type(age), type(name))


Запомни: тип переменной можно проверить через type().
Что выведет следующий код?
Anonymous Quiz
15%
[0, 4]
51%
[1, 2, 3]
26%
[0]
9%
Ошибка выполнения
🔄 Циклы в Python: for и while

Циклы позволяют выполнять повторяющиеся действия без копирования кода.

for используется для перебора коллекций (списков, строк, множеств и т.д.):
fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
print(fruit)


Проходится по каждому элементу коллекции один раз.

while выполняет код, пока условие истинно:
count = 0

while count < 3:
print(count)
count += 1


Подходит, когда заранее неизвестно, сколько раз нужно повторить действия.

Важно: следи за условиями выхода из цикла, иначе получится бесконечный цикл.
Как сделать RAG для своей компании

В статье показывают, как своими руками собрать RAG для компании: от правильной подготовки вопросов и данных до вменяемой настройки, чтобы не утонуть в куче мусора
Зачем нужен оператор walrus := в Python и когда его использовать?

Оператор присваивания :=, известный как walrus-оператор, позволяет одновременно присвоить значение переменной и использовать его в выражении. Это полезно для сокращения кода и повышения читаемости.

Пример:

if (n := len([1, 2, 3, 4])) > 3:
print(f"Список длинный: {n} элемента(ов)")


📌 В этом примере длина списка сохраняется в переменную n прямо внутри условия if, без отдельной строки присваивания.

walrus-оператор удобно использовать в циклах, условиях и генераторах, где нужно сохранить значение и сразу же его проверить или использовать.
🔹 range() — генератор чисел

range() используется для генерации последовательностей чисел.
Часто применяется в циклах for.

Формат: range(start, stop, step)

➡️ Пример:

python
Копировать
Редактировать
for i in range(1, 6):
print(i)

1
2
3
4
5


range() не включает верхнюю границу (stop), работает быстро и не хранит все числа в памяти
🔹 if / elif / else — условные конструкции

Условные конструкции управляют логикой выполнения кода.

x = 10

if x > 0:
print("Положительное")
elif x == 0:
print("Ноль")
else:
print("Отрицательное")


Блок if проверяет условие. elif — альтернативные варианты. else — всё остальное.

❗️ Отступы обязательны.