代码之家  ›  专栏  ›  技术社区  ›  Golo Roden

为什么我可以在计算中任意重复Python中的+呢?

  •  6
  • Golo Roden  · 技术社区  · 6 年前

    今天我开始学习Python。我首先学到的是值、表达式和(算术)运算符。到目前为止,一切都有意义,除了一件我不明白的事情:

    2+2
    

    4 (这是有道理的),

    2+
    

    结果是 SyntaxError 有意义的是以下代码行:

    2+++2
    

    这会导致 4 我也想知道为什么。如果我可以将其与JavaScript(我每天都使用JavaScript)进行比较,这将导致JavaScript中出现错误。

    1. 这个表达式是如何计算的?额外的钱怎么办 + 标志?
    2 回复  |  直到 6 年前
        1
  •  10
  •   Mureinik    6 年前

    unary + operator +2 将评估为 2 . 所以,这个表达式实际上被计算为:

    2+(+(+2))
    

    当然,这是 4

        2
  •  3
  •   Ashutosh Chapagain    6 年前

    根据官方文件 here

    +2 # refers to 2
    
    2+++2# unary + has higher precedence than addition
    
    2++2 # same logic
    
    2+2
    4