Привет! Множественное присваивание — это одна из тех фишек Python, которая делает код короче, чище и читаемее. В этой статье я покажу 5 практических примеров, как использовать эту возможность для сокращения кода.
В этой статье мы разберём:
- Обмен значений переменных
- Распаковка списков и кортежей
- Возврат нескольких значений из функции
- Обновление данных в цикле
- Парсинг строк и данных
- Что нужно знать перед началом
- Основная часть
- Пример 1. Обмен значений переменных
- Пример 2. Распаковка списков и кортежей
- Пример 3. Возврат нескольких значений из функции
- Пример 4. Обновление данных в цикле
- Пример 5. Парсинг строк и данных
- Бонус: расширенная распаковка с *
- Задачи для закрепления
- Шпаргалка
- КВИЗ
- Заключение
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python
- Базовое понимание переменных и списков
Совет: Множественное присваивание делает код чище и читаемее. Используй его везде, где можно.
Основная часть
Пример 1. Обмен значений переменных
Обычный способ (другие языки):
a = 5
b = 10
temp = a
a = b
b = temp
print(a, b) # 10 5Сокращённый способ (Python):
a = 5
b = 10
a, b = b, a
print(a, b) # 10 5Совет: Это один из самых известных примеров. Python сначала вычисляет все значения справа, а потом присваивает их переменным слева.
Пример 2. Распаковка списков и кортежей
Обычный способ:
data = [10, 20, 30]
x = data[0]
y = data[1]
z = data[2]
print(x, y, z) # 10 20 30Сокращённый способ:
data = [10, 20, 30]
x, y, z = data
print(x, y, z) # 10 20 30Игнорирование значений:
data = [10, 20, 30]
x, _, z = data # 20 игнорируется
print(x, z) # 10 30Совет:
_используется для игнорирования значений, которые не нужны.
Пример 3. Возврат нескольких значений из функции
Обычный способ:
def get_user():
return "Анна", 25, "Москва"
result = get_user()
name = result[0]
age = result[1]
city = result[2]
print(name, age, city) # Анна 25 МоскваСокращённый способ:
def get_user():
return "Анна", 25, "Москва"
name, age, city = get_user()
print(name, age, city) # Анна 25 МоскваСовет: Функции могут возвращать кортеж, который легко распаковывается.
Пример 4. Обновление данных в цикле
Обычный способ:
data = [(1, 2), (3, 4), (5, 6)]
for item in data:
x = item[0]
y = item[1]
print(x, y)Сокращённый способ:
data = [(1, 2), (3, 4), (5, 6)]
for x, y in data:
print(x, y)Совет: Распаковка в цикле делает код чище и понятнее.
Пример 5. Парсинг строк и данных
Обычный способ:
line = "Анна,25,Москва"
parts = line.split(",")
name = parts[0]
age = int(parts[1])
city = parts[2]
print(name, age, city) # Анна 25 МоскваСокращённый способ:
line = "Анна,25,Москва"
name, age, city = line.split(",")
age = int(age)
print(name, age, city) # Анна 25 МоскваСовет: Распаковка результата
split()делает код короче и читаемее.
Бонус: расширенная распаковка с *
# Сбор оставшихся элементов в список
first, *rest = [1, 2, 3, 4, 5]
print(first) # 1
print(rest) # [2, 3, 4, 5]
# Первый и последний
first, *middle, last = [1, 2, 3, 4, 5]
print(first, middle, last) # 1 [2, 3, 4] 5Задачи для закрепления
Задача 1. Поменяй местами значения a = 5 и b = 10.
Задача 2. Распакуй список [1, 2, 3] в переменные x, y, z.
Задача 3. Напиши функцию, возвращающую кортеж (name, age, city), и распакуй результат.
Задача 4. В цикле распакуй элементы списка кортежей [(1, 2), (3, 4), (5, 6)].
Задача 5. Распакуй результат split() для строки "Анна,25,Москва".
Ответы:
Задача 1.
a, b = 5, 10
a, b = b, a
print(a, b) # 10 5Задача 2.
data = [1, 2, 3]
x, y, z = data
print(x, y, z) # 1 2 3Задача 3.
def get_user():
return "Анна", 25, "Москва"
name, age, city = get_user()
print(name, age, city) # Анна 25 МоскваЗадача 4.
data = [(1, 2), (3, 4), (5, 6)]
for x, y in data:
print(x, y)Задача 5.
line = "Анна,25,Москва"
name, age_str, city = line.split(",")
age = int(age_str)
print(name, age, city) # Анна 25 МоскваШпаргалка
| Что нужно | Как пишется |
|---|---|
| Обмен значений | a, b = b, a |
| Распаковка списка | x, y, z = [1, 2, 3] |
| Игнорирование значения | x, _, z = [1, 2, 3] |
| Распаковка кортежа | x, y = (1, 2) |
| Расширенная распаковка | first, *rest = [1, 2, 3] |
КВИЗ
Заключение
Сегодня мы:
- Научились сокращать код с помощью множественного присваивания
- Разобрали 5 практических примеров
- Увидели, как делать код чище и читаемее








