Подтвердить что ты не робот

Почему 1 +++ 2 = 3?

Как Python оценивает выражение 1+++2?

Сколько когда-либо + я положил между, это печать 3 в качестве ответа. Пожалуйста, кто-нибудь может объяснить это поведение

И для 1--2 это печать 3 а для 1---2 это печать -1

4b9b3361

Ответ 1

Ваше выражение будет таким же, как:

1+(+(+2))

Любому числовому выражению может предшествовать -, чтобы сделать его отрицательным, или + ничего не делать (опция присутствует для симметрии). С отрицательными знаками:

1-(-(2)) = 1-(-2)
         = 1+2
         = 3

и

1-(-(-2)) = 1-(2)
          = -1

Я вижу, что вы уточнили свой вопрос, чтобы сказать, что вы пришли с фона C. В Python в C нет операторов инкремента, таких как ++ и --, что, вероятно, является источником вашей путаницы. Чтобы увеличить или уменьшить переменную i или j в Python, используйте этот стиль:

i += 1
j -= 1

Ответ 2

Дополнительные + не являются инкрементами (например, ++ a или ++ в С++). Они просто показывают, что число положительное.

Нет такого оператора ++. Однако есть унарный + оператор и унарный оператор. Оператор унарного + не влияет на его аргумент. Унарный оператор отрицает свой оператор или мулитизирует его на -1.

+1

- > 1

++1

- > 1

Это то же самое, что и + (+ (1))

   1+++2

- > 3 Так как он равен 1 + (+ (+ (2))

Аналогичным образом вы можете сделать --1 для обозначения - (-1), который равен +1.

  --1

- > 1

Для полноты нет * унарного опертора. Итак, * 1 - ошибка. Но есть ** оператор, который является степенью, принимает 2 аргумента.

 2**3

- > 8

Ответ 3

1 + (+ (+ 2)) = 3

1 - (-2) = 3

1 - (- (- 2)) = -1

Ответ 4

Попытка Unary Plus и Unary минус:

Оператор унарного - (минус) дает отрицание его числового аргумента.

Оператор унарного + (плюс) дает свой числовой аргумент без изменений.

>>> +2
2
>>> ++2
2
>>> +++2
2
>>> -2
-2
>>> --2
2
>>> ---2
-2
>>> 1+(++2)
3

Ответ 5

Подумайте, что это 1 + (+1 * (+ 1 * 2))). Первый + - оператор, а следующие знаки плюс - знак второго операнда (= 2).

Точно так же, как 1 --- 2 совпадает с 1 - - (- (2)) или 1- (-1 * (- 1 * (2))

Ответ 6

Я считаю, что он анализируется как, первый + как двоичная операция (add), а остальные - как унарные операции (делают положительные).

 1 + (+(+2))