Python 如何评估表达式1+++2
?
我在两者之间放了多少+
,它正在打印3
作为答案。请任何人都可以解释这种行为
因为1--2
它正在打印3
,1---2
它正在打印-1
Python 如何评估表达式1+++2
?
我在两者之间放了多少+
,它正在打印3
作为答案。请任何人都可以解释这种行为
因为1--2
它正在打印3
,1---2
它正在打印-1
您的表达方式与以下内容相同:
1+(+(+2))
任何数字表达式都可以在其前面加上-
负数,或者+
什么都不做(该选项是为了对称而存在的)。带有负号:
1-(-(2)) = 1-(-2)
= 1+2
= 3
和
1-(-(-2)) = 1-(2)
= -1
我看到你澄清了你的问题,说你来自 C 背景。在 Python 中,没有像C 中的++
和这样的增量运算符--
,这可能是您困惑的根源。要增加或减少变量i
或j
在 Python 中使用此样式:
i += 1
j -= 1
额外的 + 不是增量符(如 c++ 中的 ++a 或 a++)。他们只是表明这个数字是正数。
没有这样的 ++ 运算符。但是有一个一元 + 运算符和一个一元 - 运算符。一元 + 运算符对其参数没有影响。一元 - 运算符否定其运算符或将其乘以 -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
将其视为 1 + (+1*(+1*2)))。第一个 + 是运算符,后面的加号是第二个操作数 (= 2) 的符号。
就像 1---2 与 1 - -(-(2)) 或 1- (-1*(-1*(2)) 一样
我相信它被解析为,第一个 + 作为二元运算(加法),其余作为一元运算(正数)。
1 + (+(+2))