ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Оператор присваивания в Python: как использовать :=

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Оператор :=, также известный как оператор моржа, налаживает новшество в Python, позволяя присвоить значение переменной и использовать это значенис в выражении одновременно.

Python
Скопировать код
if (count := len(items)) > 5:
    print(f"Количество {count} — Ух ты, как много!")

В вышеуказанном примере переменной count присваивается результат функции len(items), что сокращает код и уменьшает необходимость повторного вычисления. Это новый уровень эффективности.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Разбираемся с моржом

Появившийся в версии Python 3.8, оператор := сочетает в себе присваивание и оценку значения, тем самым значительно обогащая язык.

Как выпустить моржа на свободу

  1. Условные конструкции
Python
Скопировать код
# Без использования оператора моржа:
match = pattern.search(data)
if match:
    do_something_amazing(match)
# Используя оператор моржа:
if (match := pattern.search(data)):
    do_something_amazing(match)
  1. Циклы while
Python
Скопировать код
# Без использования оператора моржа:
value = fetch_next()
while value:
    process(value)
    value = fetch_next()
# Используя оператор моржа:
while (value := fetch_next()):
    process(value)
  1. Списковые включения
Python
Скопировать код
# Без использования оператора моржа:
processed = [process(x) for x in data if process(x) > threshold]
# Используя оператор моржа:
processed = [res for x in data if (res := process(x)) > threshold]

Эффективность: основной принцип программирования

Морж подарит вам сокращение избыточности за счет уменьшения объема кода и упрощения сложных операций. Ваш код станет стекающим благодаря экономии ресурсов и повышенной ясности.

Не споткнись!

Невзирая на все преимущества, помните о важности читабельности и документированности кода. Ведь ключевая ценность заключается в понятности и доступности кода. Используйте оператор моржа обдуманно и с умом.

Визуализация

Для визуализации примера с оператором моржа обратимся к простому кулинарному аналогу:

Python
Скопировать код
# Без использования оператора моржа:
soup = taste_soup()
if soup == 'нужно соль':
    add_salt()
# Сначала мы пробуем суп, а затем совершаем действие. Это два разделенных шага.

# Используя оператор моржа:
if (soup := taste_soup()) == 'нужно соль':
    add_salt()
# Оцениваем и принимаем решение одновременно. Гораздо более эффективный подход!

Оператор моржа превращает два этапа в один, упрощая процедуру и делая её более изящной.

Продолжайте кодировать, пользуясь преимуществами оператора :=, позволяющего присваивать и сразу использовать значения, держите ваш код аккуратным и эффективным.

Превосходство над псевдокодом

Преобразуя псевдокод в Python, отметьте различия между = и ==. В Python == — это оператор сравнения, в то время как в псевдокоде = может обозначать присваивание. Оператор морж помогает устранить это недоразумение.

Рекомендации по укрощению моржа

  1. Избегайте избытка: благодаря := не требуется повторное вычисление значений — #сохраняемпамять!
  2. Создайте ясность: оператор морж делает логику по-настоящему прозрачной — #ясностьэтокруто!
  3. Корректное использование: каждый инструмент эффективен в конкретной ситуации — #укрощайтеморжа!

Полезные материалы

  1. PEP 572 – Выражения присваивания: Подробности об этом нововведении можно изучить в официальной документации.
  2. Выражения присваивания: оператор морж – Real Python: Руководство, которое поможет быстро освоить работу с оператором моржа.
  3. 6. Выражения — документация Python 3.12.2 : Официальная документация, в которой подробно раскрыты синтаксис и семантика оператора моржа.
  4. Что нового в Python 3.8 — документация Python 3.12.2 : Обзор последних изменений в языке Python, включая упоминание оператора моржа.
  5. Python Insider: Личные заметки разработчиков Python во время бета-тестирования.