为什么1 +++ 2 = 3?
Python如何评估expression式1 +++ 2?
中间放入了多less个“+”,其中打印3为答案。 请任何人都可以解释这种行为
而1–2是打印3和1 — 2是打印-1
你的表情和以下一样:
1+(+(+2))
任何数字expression式都可以在前面加上-
使其成为负数,或者+
不作任何事情(该选项对称)。 负号:
1-(-(2)) = 1-(-2) = 1+2 = 3
和
1-(-(-2)) = 1-(2) = -1
我看到你澄清了你的问题,说你来自C背景。 在Python中,没有像++
这样的增量运算符,而在C中,这可能是你混淆的根源。 要在Python中增加或减lessvariablesi
或j
,请使用以下样式:
i += 1 j -= 1
额外的+不是递增的(就像++ ++或++)。 他们只是表明这个数字是积极的。
没有这样的++操作符。 但是有一个一元运算符和一个一元运算符。 一元+运算符对其参数没有影响。 一元运算符否定其运算符或将其乘以-1。
+1
– > 1
++1
– > 1
这与+(+(1))相同
1+++2
– > 3因为它与1 +(+(+(2))相同
同样,你也可以这样做–1表示 – (-1)+1。
--1
– > 1
为了完整性,没有*一元运营商。 所以* 1是一个错误。 但有一个**运算符是权力,它需要2个参数。
2**3
– > 8
1 +(+(+ 2))= 3
1 – ( – 2)= 3
1 – ( – ( – 2))= – 1
尝试一元加和一元减 :
一元 – (减号)运算符产生数值参数的否定。
一元+(加号)运算符的数值参数不变。
>>> +2 2 >>> ++2 2 >>> +++2 2 >>> -2 -2 >>> --2 2 >>> ---2 -2 >>> 1+(++2) 3
我相信它被parsing为,作为二元运算的第一个+(加),其余的作为一元运算(成立)。
1 + (+(+2))
这很简单。 Python中没有后增或后减运算符。
看到这里: http : //mail.python.org/pipermail/python-list/2006-January/361771.html
认为它是1 +(+1 *(+ 1 * 2)))。 第一个+是运算符,后面的加号是第二个操作数(= 2)的符号。
就像1 — 2与1 – ( – (2))或1-(-1 *( – 1 *(2))一样