Введение
В этом практическом занятии мы узнаем о выражениях присваивания в Python, также называемых «оператором моржа» (:=). Этот оператор, введенный в Python 3.8, позволяет присваивать значение переменной в составе выражения. Он особенно полезен для оптимизации кода, избавления от избыточных вычислений и упрощения сложных выражений.
По окончании этого практического занятия вы должны быть в состоянии понять и применять выражения присваивания в своих программах на Python. Мы начнем с простых примеров и постепенно перейдем к более сложным.
Простое выражение присваивания
В этом шаге мы начнем с простого примера, чтобы понять базовый синтаксис выражений присваивания.
Откройте Python-интерпретатор
Откройте Python-интерпретатор, введя следующую команду в терминале.
python3
Простой тест
Пустим простой пример
## Базовый пример выражения присваивания
n = 5
result = (squared := n * n)
print(squared, result)
Результат:
25 25
Здесь мы присваиваем результат n * n переменной squared с использованием оператора моржа := внутри скобок. Затем мы присваиваем значение squared переменной result. Наконец, мы выводим значения squared и result.
Использование выражений присваивания в условном выражении
В этом шаге мы исследуем использование выражений присваивания в условном выражении.
## Использование выражений присваивания в условном выражении
input_str = "Hello, world!"
if (length := len(input_str)) > 10:
print(f"Строка содержит {length} символов, что больше 10.")
else:
print(f"Строка содержит {length} символов, что меньше или равно 10.")
Результат:
Строка содержит 13 символов, что больше 10.
Здесь мы вычисляем длину input_str и присваиваем ее переменной length с использованием оператора моржа внутри условия if-выражения. Это позволяет нам использовать значение length в обоих ветках условного выражения.
Использование выражений присваивания в цикле
Теперь посмотрим, как использовать выражения присваивания в цикле.
## Использование выражений присваивания в цикле
numbers = [1, 2, 3, 4, 5]
while (n := numbers.pop()) > 2:
print(f"Извлечено {n}, что больше 2.")
print(f"Извлечено {n}, что меньше или равно 2.")
Результат:
Извлечено 5, что больше 2.
Извлечено 4, что больше 2.
Извлечено 3, что больше 2.
Извлечено 2, что меньше или равно 2
В этом примере мы используем оператор моржа внутри условия цикла while, чтобы извлекать элементы из списка numbers и присваивать их переменной n. Цикл продолжается, пока не будет извлечен элемент, меньший или равный 2.
Использование выражений присваивания в генераторе списка
Наконец, давайте исследуем использование выражений присваивания в генераторе списка.
## Использование выражений присваивания в генераторе списка
from math import sqrt
numbers = [1, 4, 9, 16, 25]
roots = [int(root) for n in numbers if (root := sqrt(n)) == int(root)]
print(roots)
Результат:
[1, 2, 3, 4, 5]
В этом примере мы используем оператор моржа в генераторе списка, чтобы вычислить квадратный корень каждого числа в numbers и проверить, является ли он целым числом. Если да, мы добавляем целый квадратный корень в список roots.
Резюме
В этом практическом занятии мы изучили выражения присваивания в Python (оператор моржа) с помощью серии пошаговых примеров. Мы рассмотрели базовый синтаксис и использование в условных выражениях, циклах и генераторах списка. На данный момент вы должны хорошо понять, как использовать выражения присваивания в своем коде на Python для оптимизации и упрощения сложных выражений.
Помните, используйте выражения присваивания разумно, чтобы сделать ваш код более читаемым и эффективным. Как и любая функция программирования, важно не злоупотреблять ею, так как это может привести к менее поддерживаемому коду, если использовать его чрезмерно или неправильно.
Продолжайте практиковаться и экспериментировать с оператором моржа в различных сценариях, чтобы улучшить свои навыки программирования на Python. Удачи, и приятной работы!



