Python如何评估表达式1+++2
?
我介入的+
有多少,它打印3
作为答案。请任何人都可以解释这种行为
1--2
正在打印3
而1---2
正在打印-1
答案 0 :(得分:59)
你的表达与:
相同1+(+(+2))
任何数字表达式都可以以-
开头以使其为负数,或+
不执行任何操作(对称存在该选项)。带负号:
1-(-(2)) = 1-(-2)
= 1+2
= 3
和
1-(-(-2)) = 1-(2)
= -1
我看到你澄清了你的问题,说你来自C背景。在Python中,C中没有像++
和--
这样的增量运算符,这可能是您混淆的根源。要在Python中增加或减少变量i
或j
,请使用以下样式:
i += 1
j -= 1
答案 1 :(得分:14)
额外+不是增量器(如++中的++ a或++)。他们只是表明这个数字是正数。
没有这样的++运算符。但是有一个一元+运算符和一元运算符。一元+运算符对其参数没有影响。一元 - 运算符否定其运算符或将其乘以-1。
+1
- > 1
++1
- > 1
这与+(+(1))
相同 1+++2
- > 3 因为它与1 +(+(+(2))
相同同样地,你可以--1表示 - (-1)这是+1。
--1
- > 1
为了完整性,没有*一元的opeartor。所以* 1是一个错误。但有一个** 作为权力的运算符,它需要2个参数。
2**3
- > 8
答案 2 :(得分:4)
1 +(+(+ 2))= 3
1 - (-2)= 3
1 - ( - ( - 2))= - 1
答案 3 :(得分:4)
一元 - (减号)运算符产生其数字参数的否定。
一元+(加号)运算符使其数字参数保持不变。
>>> +2
2
>>> ++2
2
>>> +++2
2
>>> -2
-2
>>> --2
2
>>> ---2
-2
>>> 1+(++2)
3
答案 4 :(得分:1)
将其视为1 +(+1 *(+ 1 * 2)))。第一个+是运算符,后面的加号是第二个操作数(= 2)的符号。
就像1 --- 2与1 - - ( - (2))或1-(-1 *( - 1 *(2))
相同答案 5 :(得分:1)
我相信它被解析为,第一个+作为二元运算(add),其余作为一元运算(正面)。
1 + (+(+2))