是否使用两个加法运算符在python中添加两个有效的整数?

Pra*_*mar 4 python operators python-2.7 python-3.x

我刚开始学习python.我只是想尝试打印功能.我最后写了下面的代码.

print(2 ++ 2)
Run Code Online (Sandbox Code Playgroud)

我期望Python解释器抛出一个错误,因为我把两个加法运算符放在一起,而不在它们之间放置一个整数.相反,python解释器没有抛出任何错误并返回4作为输出.我也试过下面的代码: -

print(4 -- 2)
Run Code Online (Sandbox Code Playgroud)

输出是6.

有人能解释一下这些吗?

Wil*_*sem 5

2 ++ 2解释为:

2 ++ 2 == 2 + (+2)
Run Code Online (Sandbox Code Playgroud)

因此,您在第二个之间2和之间执行添加,因此是一元加.如果你写下:+2+2 +++ 2

2 +++ 2 == 2 + (+(+2))
Run Code Online (Sandbox Code Playgroud)

对于4 -- 2类似的情况发生:

4 -- 2 == 4 - (-2)
Run Code Online (Sandbox Code Playgroud)

所以你-24结果中减去6.

不禁止使用两次,三次(或甚至更多次)添加,但对于整数/浮点数,它只会导致更多的混淆,所以最好不要这样做.

定义他们自己的一元加和一元减运算符的classes (例如).在那种情况下可以有不同的行为.所以你最好不要使用(如果你这样做,在两个ses 之间放一个空格,使其明确表示第二个是不同的运算符).Counter+++++++

由于有一元加号和减号运算符,所以在第一个之后+或者-被解释为一元的任何东西.因此2 ++--++- 2将导致0:

2 ++--++- 2 == 2 + (+(-(-(+(+(-2))))))
Run Code Online (Sandbox Code Playgroud)