Почему я могу повторить + в Python произвольно в расчете? - PullRequest
0 голосов
/ 22 сентября 2018

Сегодня я начал изучать Python.Первым, что я узнал, были значения, выражения и (арифметические) операторы.Пока что все имеет смысл, кроме одной вещи, которую я не понимаю:

В то время как

2+2

оценивается как 4 (что имеет смысл),

2+

приводит к SyntaxError (что также имеет смысл).Но что, с моей точки зрения, не имеет смысл, такова следующая строка кода:

2+++2

Это также приводит к 4, и я удивляюсь, почему.Если я могу сравнить это с JavaScript (который я использую ежедневно), это приведет к ошибке в JavaScript.

Итак, два вопроса:

  1. Почемуне приводит ли это к синтаксической ошибке?
  2. Как вычисляется это выражение?Что происходит с дополнительными + знаками?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Согласно официальной документации здесь ,

+2 # refers to 2

2+++2# unary + has higher precedence than addition

2++2 # same logic

2+2
4
0 голосов
/ 22 сентября 2018

Python имеет унарный + оператор - +2 оценивается как 2.Итак, это выражение фактически оценивается как:

2+(+(+2))

Что, конечно, равно 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...