Рубрики
Без рубрики

Работа приращения Python

Как вы выполняете операцию приращения Python? Если вы идете с языка, как C ++ или Java, вы можете попробовать продление аналогичного приращения

Автор оригинала: Pankaj Kumar.

Как вы выполняете операцию приращения Python? Если вы идете с языка, такого как C ++ или Java, вы можете попробовать расширить аналогичную функциональность увеличения Python.

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

Приращение Python

Прежде чем идти с точными различиями, мы посмотрим, как мы можем увеличить переменную в Python.

Ниже приведен код показывает, как практически все программисты увеличивают целые числа или аналогичные переменные в Python.

>>> a = 10
>>> print(a)
10

>>> a += 1
>>> print(a)
11

>>> a += 100
>>> print(a)
111

>>> b = 'Hello'
>>> b += 1
Traceback (most recent call last):
  File "", line 1, in 
TypeError: can only concatenate str (not "int") to str

>>> b += ' from AskPython'
>>> b
'Hello from AskPython'

Мы увеличили целочисленную переменную А в последовательных шагах здесь. Также, поскольку + Оператор Также обозначает Concatenation относительно строк, мы также можем добавить в строку на месте!

Можем ли мы после приращения А на 1, используя A ++ ?

>>> a++
  File "", line 1
    a++
      ^
SyntaxError: invalid syntax

Ну, есть проблема здесь. Python, по дизайну, не позволяет использовать ++ «Оператор». ++ Срок, называется оператором приращения в C ++/Java, не имеет места в Python.

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

Если вы хотите понять это более подробно, вам нужно иметь какой-то опыт на дизайне языка программирования.

Опция не включать ++ Оператор в Python – это Решение дизайна Отказ Люди, которые несут ответственность за создание функций на языке Python, считали, что нет необходимости вводить оператор приращения в стиле CPP.

Когда интерпретатор Python разбирается в A ++ Символ с нашего ввода, он интерпретируется следующим образом:

  • Так как двоичный + Оператор является оператором дополнения, A ++ будет рассматриваться как А , + и + Отказ Но Python ожидает номер после первого + оператор. Поэтому он даст синтаксическую ошибку на A ++ , так как второй + не число.

Точно так же предварительное увеличение ++ A , будет относиться так:

  • Унарный + Оператор в Python относится к оператору идентичности. Это просто возвращает целое число после этого. Вот почему это Операция идентичности на целое число
  • Например, значение +5 просто 5 и за + -5 это -5 Отказ Это унарный оператор, который работает на реальных числах
  • ++ A будет проанализирован как + и + а , но второй + а снова лечится как (+ а) , который просто а.
  • Поэтому + (+ (а)) просто оценивает А Отказ

Так что, хотя мы хотели увеличить ценность А К одному, мы не можем достичь этого, используя ++ Символы, поскольку этот вид оператора не существует.

Поэтому мы должны использовать + = Оператор, чтобы сделать этот вид приращения.

a += 1
a -= 1

То же самое логику верно для операции по снижению.

Как оценивается?

Вы можете подумать, что, поскольку есть = Символ, это может быть заявление о назначении.

Однако это не регулярное заявление о назначении. Это называется Увеличенное заявление о назначении Отказ

В регулярном заявлении о назначении правая сторона оценивается в первую очередь, прежде чем это назначить его левой стороне.

# 2 + 3 is evaluated to 5, before assigning to a
a = 2 + 3

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

# Reads the value of a, before adding 3 to it in-place
a += 3

Это единственный способ для увеличения переменной, не используя заявление о переназначении, как A + 1 Отказ Но здесь, в целом, опция в любом случае не имеет значения, поскольку переводчик оптимизирует код во время выполнения.

Заключение

В этой статье мы узнали о том, как мы можем использовать операцию приращения в Python и почему ++ и - Операторы не поддерживаются.

Рекомендации