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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
🔹 Что делает *

Распаковывает позиционные значения — элементы из списка, кортежа, строки и т.д.

Пример:
numbers = [1, 2, 3]
print(*numbers) # Вывод: 1 2 3


Или объединение:
a = [1, 2]
b = [3, 4]
combined = [*a, *b] # [1, 2, 3, 4]


Также *args используется в функциях для сбора неограниченного числа аргументов.


🔹 Что делает **

Распаковывает именованные аргументы из словаря.

Пример:
def greet(name, age):
print(f"{name}, {age} лет")

data = {"name": "Анна", "age": 30}
greet(**data) # Эквивалентно greet(name="Анна", age=30)


Также **kwargs используется для сбора именованных аргументов внутри функций.


🧠 Зачем это нужно

• Удобно передавать аргументы из коллекций

• Компактно объединять и копировать структуры

• Повышает читаемость и гибкость кода
Что выведет следующий код?
Anonymous Quiz
18%
[2, 2, 2]
7%
[None, None, None]
36%
[0, 1, 2]
39%
Ошибка выполнения
🔹 lambda — анонимные функции в одну строку

lambda позволяет создавать небольшие функции без имени. Полезно для простых операций, особенно в сочетании с map(), filter() и sorted().

➡️ Пример:

square = lambda x: x ** 2
print(square(5)) # Вывод: 25


Такая функция не требует def и может быть использована сразу, "на месте". Подходит для одноразовых действий, когда обычная функция — избыточна.
🔹 Тернарный оператор — короткий if в одну строку

В Python можно записать простое условие в одну строку с помощью тернарного оператора.
Формат: a if условие else b

➡️ Пример:

age = 18
status = "взрослый" if age >= 18 else "несовершеннолетний"
print(status)

взрослый


Удобно для присваивания значений на основе условий без многострочного if.
Что выведет следующий код?
Anonymous Quiz
48%
Base
30%
Sub
9%
Ошибка выполнения
13%
None
🔹 list comprehension — создание списков в одну строку

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

➡️ Пример:

squares = [x**2 for x in range(1, 6)]
print(squares)

[1, 4, 9, 16, 25]


Подходит для фильтрации, преобразования и генерации данных без лишнего кода.
Зачем используется функция zip() в Python и когда её применять

Функция zip() объединяет несколько итерируемых объектов, возвращая итератор кортежей, где каждый кортеж содержит элементы с одинаковым индексом из всех коллекций.

Это удобно для синхронной обработки данных из разных источников.

Пример:

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]

for name, score in zip(names, scores):
print(f"{name}: {score}")
# ➜ Alice: 85
# ➜ Bob: 92
# ➜ Charlie: 78


📌 В этом примере zip() объединяет списки имён и баллов, позволяя пройтись по ним одновременно.

zip() удобно использовать при работе с таблицами, конфигурациями, CSV-данными, векторными операциями и в ML — когда нужно синхронно итерироваться по признакам и меткам. Код получается чище и безопаснее, чем ручной перебор с индексами.
Что выведет следующий код?
Anonymous Quiz
22%
test
22%
got
17%
set test, test
39%
set test, got
🔹 zip() + unpacking — параллельный перебор списков

С помощью zip() можно перебирать несколько списков одновременно.

А с распаковкой (*) удобно разъединять обратно.

➡️ Пример:

names = ["Анна", "Борис", "Вера"]
scores = [90, 85, 78]

for name, score in zip(names, scores):
print(f"{name}: {score}")

Анна: 90
Борис: 85
Вера: 78


zip() помогает работать с данными построчно и синхронно.

А zip(*iterable) делает обратное — трансформирует строки в колонки.
🔹 set() — быстрое удаление дубликатов

Множество (set) хранит только уникальные значения.

Используется для удаления повторов и быстрой проверки принадлежности.

➡️ Пример:

numbers = [1, 2, 2, 3, 4, 4, 5]
unique = list(set(numbers))
print(unique)

[1, 2, 3, 4, 5]


set() — простой способ избавиться от дубликатов в списке. Порядок элементов не сохраняется.
🔹 isinstance() — проверка типа объекта

isinstance() используется для проверки, принадлежит ли объект к определённому типу (или нескольким типам).

➡️ Пример:

x = 3.14

if isinstance(x, (int, float)):
print("Это число")

Это число


Полезно для валидации входных данных и написания гибких функций.


Работает с базовыми и пользовательскими типами.
🔹 range + len — индексы без enumerate

Если нужен доступ к элементам списка и их индексам, но без enumerate(), можно использовать range(len(...)).

➡️ Пример:

fruits = ["яблоко", "банан", "груша"]

for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")

0: яблоко
1: банан
2: груша


Такой способ часто используется, если нужно изменять элементы списка по индексу.