Инкремент и декремент значений в Python

В Python нет традиционных операторов инкремента и декремента, таких как ++ или --. Вместо них используются расширенные операторы присваивания, которые объединяют оператор присваивания = с математической операцией, такой как сложение += или вычитание -=.

БЕСПЛАТНО СКАЧАТЬ КНИГИ по Python на русском языке можно у нас в телеграм канале "Python книги на русском"

Например, чтобы увеличить переменную x на 1, можно использовать расширенный оператор присваивания x += 1 вместо традиционного оператора инкремента ++x.

Вот несколько примеров:

a = 10
b = 5

# Инкремент на 10
a += 10

# Декремент на 15
b -= 15

print(a)
print(b)


# Результат:
# 20
# -10

Примечание редакции: о других операторах читайте в статье “Операторы в Python”.

Операторы += и -= в Python

Вместо операторов ++ и -- для увеличения/уменьшения значения в Python используются операторы += и -= соответственно. Давайте рассмотрим подробнее, как они работают.

Инкремент значений – оператор +=

В Python расширенный оператор присваивания += прибавляет правый операнд к левому и присваивает результат левому операнду. Например:

x = 5
x += 2

print(x) 


# Результат:
# 7

После выполнения этого кода значение x будет равно 7. Выражение x += 2 эквивалентно записи x = x + 2.

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

# Добавить число к значению переменной
x = 5
x += 2
# Теперь значение x равно 7

# Присоединить строку к значению переменной
s = "Hello"
s += " World"
# Теперь значение s - "Hello World"

# Добавить элемент к списку
l = [1, 2, 3]
l += [4]
# Теперь значение l - [1, 2, 3, 4]

Оператор += предоставляет лаконичный и удобный синтаксис для выполнения приращений в одном операторе.

Декремент значений – оператор -=

В Python расширенный оператор присваивания -= вычитает правый операнд из левого операнда и присваивает результат левому операнду. Например:

x = 5
x -= 2

print(x) 


# Результат:
# 3

После выполнения этого кода значение x будет равно 3. Выражение x -= 2 эквивалентно записи x = x - 2.

В отличие от оператора +=, оператор -= нельзя использовать для строк или списков.

Почему в Python нет оператора ++

В Python операторы ++ и -- не существуют, потому что они вообще не считаются операторами.

В Python все операторы, изменяющие пространство имен (т.е. переменные, функции и т.д.), должны быть явно записаны как операторы. Это означает, что если бы ++ и -- были включены в Python, их пришлось бы записывать как отдельные утверждения, а не как операторы. Это сделало бы синтаксис менее лаконичным и даже немного более запутанным.

Одна из основных причин, по которой оператор ++ используется в других языках программирования, таких как C или C++, – это необходимость отслеживать индекс в цикле.

Вместо традиционных операторов инкремента и декремента Python предоставляет инструменты, которые можно использовать для достижения аналогичных результатов. Например, вы можете использовать функцию enumerate() для итерации по списку и получения индекса каждого элемента, что избавляет от необходимости использования операторов ++ или -- в цикле.

Как Python читает ++?

1. x++ в Python выдает синтаксическую ошибку

В Python оператор + является оператором сложения. Его нужно поместить между двумя складываемыми значениями, то есть числами в данном случае. Поскольку второй + не является числом, выполнение x++ приводит к синтаксической ошибке.

2. ++x оценивается как просто x

Оператор префиксного инкремента ++x в Python также не имеет смысла.

Унарный оператор + является оператором тождества и просто возвращает значение, идущее за оператором. Например, +5 – это просто 5, а +100 – это просто 100.

То же самое относится и к нескольким операторам ++. Например, ++5 = +(+5) = +5 = 5.

Заключение

В Python расширенные операторы присваивания += и -= объединяют операции сложения/вычитания и присваивания. Эти операторы обеспечивают удобный синтаксис для операций инкремента и декремента.

Например, выражение x += 2 эквивалентно записи x = x + 2, а выражение x -= 2 эквивалентно записи x = x - 2.

В Python нет операторов инкремента и декремента (++ и --), как в некоторых других языках программирования. Вместо этого эти операции можно выполнить с помощью операторов += и -= соответственно.

Спасибо за прочтение. Успешного кодинга!

Перевод статьи Artturi Jalli “Python Increment Operator (++) and Decrement Operator (–)”