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.
有人能解释一下这些吗?
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)
所以你-2从4结果中减去6.
不禁止使用两次,三次(或甚至更多次)添加,但对于整数/浮点数,它只会导致更多的混淆,所以最好不要这样做.
有定义他们自己的一元加和一元减运算符的classes (例如).在那种情况下可以有不同的行为.所以你最好不要使用(如果你这样做,在两个ses 之间放一个空格,使其明确表示第二个是不同的运算符).Counter+++++++
由于有一元加号和减号运算符,所以在第一个之后+或者-被解释为一元的任何东西.因此2 ++--++- 2将导致0:
2 ++--++- 2 == 2 + (+(-(-(+(+(-2))))))
Run Code Online (Sandbox Code Playgroud)