Что выведет код:
  Anonymous Quiz
    61%
    1, 2, 3
      
    16%
    1, 2, StopIteration
      
    4%
    1, 2, None
      
    18%
    Ошибка выполнения
      
    🔥 
🔹
🔹
✅ Используйте
  *args и **kwargs в Python🔹
*args — передает позиционные аргументы как кортеж:def add_numbers(*args):
return sum(args)
print(add_numbers(1, 2, 3)) # 6
🔹
**kwargs — передает именованные аргументы как словарь:def greet(**kwargs):
print(kwargs)
greet(name="Alice", age=25) # {'name': 'Alice', 'age': 25}
✅ Используйте
*args для списка значений и **kwargs для гибких параметров!↔️ Разница между 
🔹
🔹
🔹 Но для immutable-объектов (например,
✅ Используйте
  is и == в Python🔹
== (равенство) проверяет, равны ли значения объектов:a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True (значения одинаковые)
🔹
is (идентичность) проверяет, указывают ли переменные на один и тот же объект в памяти:print(a is b) # False (разные объекты)
🔹 Но для immutable-объектов (например,
int, str, tuple) Python кеширует значения:x = 256
y = 256
print(x is y) # True (указывают на один объект)
✅ Используйте
== для сравнения значений и is для проверки, ссылаются ли переменные на один объект в памяти!Что выведет код?
  Anonymous Quiz
    57%
    [(1, "a"), (2, "b"), (3, "c")]
      
    28%
    [[1, "a"], [2, "b"], [3, "c"]]
      
    13%
    [(1, "b"), (2, "c"), (3, "a")]
      
    2%
    Ошибка выполнения
      
    🔥 lambda — короткие функции в Python
✅ Пример (обычная функция vs. lambda):
🔹 Где используется?
1️⃣
2️⃣
3️⃣
⚡️ Когда использовать
  
  
❌ Не стоит использовать
lambda — это анонимная функция, которая записывается в одну строку и не требует def. Используется там, где нужна простая операция без имени функции.✅ Пример (обычная функция vs. lambda):
def square(x):
return x ** 2
square_lambda = lambda x: x ** 2
print(square(5)) # 25
print(square_lambda(5)) # 25
🔹 Где используется?
1️⃣
map() — Применение функции к спискуnums = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, nums))
print(squared) # [1, 4, 9, 16]
2️⃣
filter() — Фильтрация данныхeven = list(filter(lambda x: x % 2 == 0, nums))
print(even) # [2, 4]
3️⃣
sorted() — Сортировка по ключуpairs = [(1, 'one'), (3, 'three'), (2, 'two')]
pairs.sort(key=lambda x: x[0])
print(pairs) # [(1, 'one'), (2, 'two'), (3, 'three')]
⚡️ Когда использовать
lambda?• Когда функция простая и короткая• Когда она нужна один раз❌ Не стоит использовать
lambda, если логика сложная – лучше писать def.👍2
  Что делает 
Пример:
Зачем нужно?
⚡️
@property в Python?@property превращает метод класса в свойство, позволяя обращаться к нему без скобок.Пример:
class Person:
def init(self, name):
self._name = name
@property
def name(self):
return self._name
p = Person("Alice")
print(p.name) # Alice (как атрибут, но с логикой)
Зачем нужно?
• Позволяет использовать методы как атрибуты• Защищает данные от прямого изменения•  Позволяет добавить логику без изменения интерфейса⚡️
@property делает код чище и безопаснее, улучшая инкапсуляцию!❤2
  Что выведет код?
  Anonymous Quiz
    30%
    {3}
      
    54%
    {1, 2, 3, 4, 5}
      
    13%
    {1, 2, 3, 3, 4, 5}
      
    2%
    Ошибка выполнения
      
    🔥2
  🔥 Что такое 
✅ Обычный класс без
✅ Класс с
➕ Плюсы
⚡️ Используйте
  slots в Python и зачем он нужен?slots ограничивает список атрибутов у экземпляров класса, экономя память за счет отказа от dict.✅ Обычный класс без
slots:class Person:
def init(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
p.city = "New York" # Можно добавить новый атрибут
✅ Класс с
slots:class Person:
slots = ("name", "age") # Разрешены только эти атрибуты
def init(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 25)
p.city = "New York" # ❌ AttributeError: 'Person' object has no attribute 'city'
➕ Плюсы
slots • Экономит память (не создается dict) • Ускоряет доступ к атрибутам • Предотвращает создание лишних атрибутов⚡️ Используйте
slots, если нужно много однотипных объектов и важна производительность!🐍 Что делает 
✅ Пример:
Зачем нужно?
Используйте
  enumerate() в Python?enumerate() добавляет индекс при итерации по списку.✅ Пример:
fruits = ["🍎", "🍌", "🍇"]
for i, fruit in enumerate(fruits, start=1):
print(i, fruit)
1 🍎
2 🍌
3 🍇
Зачем нужно?
• Упрощает работу с индексами в циклах• Делает код читаемым без range(len())Используйте
enumerate() вместо range(len()) для чистого и Pythonic-кода!Что выведет код?
  Anonymous Quiz
    9%
    None, Hello
      
    19%
    Hello, None
      
    58%
    Hello, Hello
      
    14%
    Ошибка выполнения
      
    👍2
  🔗 
✅ Пример:
🔹 Как работает
🔹 Где полезен?
zip() в Python: удобное объединение данныхzip() соединяет элементы из нескольких последовательностей попарно, создавая кортежи с одинаковыми индексами.✅ Пример:
keys = ["name", "age", "city"]
values = ["Alice", 25, "NY"]
data = dict(zip(keys, values))
print(data) # {'name': 'Alice', 'age': 25, 'city': 'NY'}
🔹 Как работает
zip()? • Комбинирует списки в пары. • Завершается, когда самый короткий список заканчивается. • Использует итератор, экономя память.🔹 Где полезен?
 • Генерация словарей из двух списков. • Итерация по нескольким последовательностям одновременно. • Упрощение работы с табличными данными.Используйте zip() для компактного и читаемого кода!
👍2
  🎯 
✅ Пример:
🔹 Ключевые свойства
🔹 Основные операции:
⚡️ Используйте
  set() в Python: работа с уникальными даннымиset() — это неупорядоченная коллекция уникальных элементов, которая позволяет легко убирать дубликаты и быстро выполнять операции над множествами.✅ Пример:
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers) # {1, 2, 3, 4, 5}
🔹 Ключевые свойства
set() • Хранит только уникальные элементы. • Поддерживает быстрый поиск (O(1)). • Не сохраняет порядок элементов.🔹 Основные операции:
 • Объединение: set1 | set2 • Пересечение: set1 & set2 • Разность: set1 - set2⚡️ Используйте
set() для удаления дубликатов и эффективной работы с уникальными данными!