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

参见英文答案 > Behaviour of increment and decrement operators in Python                                    7个
我刚开始学习python.我只是想尝试打印功能.我最后写了下面的代码.

print(2 ++ 2)

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

print(4 -- 2)

输出是6.

有人能解释一下这些吗?

最佳答案
2 2被解释为:

2 ++ 2 == 2 + (+2)

所以你执行2到2之间的加法,其中第二个是一元加.如果你写2 2,也会发生同样的情况:

2 +++ 2 == 2 + (+(+2))

对于4 – 2的情况,会发生类似情况:

4 -- 2 == 4 - (-2)

所以你从4减去-2得到6.

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

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

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

2 ++--++- 2 == 2 + (+(-(-(+(+(-2))))))

转载注明原文:是否使用两个加法运算符在python中添加两个有效的整数? - 代码日志