Python 为什么1+++;2 = 3?
Python如何计算表达式Python 为什么1+++;2 = 3?,python,evaluation,operator-precedence,Python,Evaluation,Operator Precedence,Python如何计算表达式1+++2 我放了多少个+在中间,它正在打印3作为答案。有人能解释一下这种行为吗 对于1--2它正在打印3,对于1--2它正在打印-1,您的表达式如下所示: 1+(+(+2)) 任何数值表达式前面都可以加上-使其为负值,或者加上+使其不起任何作用(该选项用于对称)。带负号的: 1-(-(2)) = 1-(-2) = 1+2 = 3 及 我看到你澄清了你的问题,说你来自C背景。在Python中,没有像C中的++和--这样的增量运算符
1+++2
我放了多少个+
在中间,它正在打印3
作为答案。有人能解释一下这种行为吗
对于
1--2
它正在打印3
,对于1--2
它正在打印-1
,您的表达式如下所示:
1+(+(+2))
任何数值表达式前面都可以加上-
使其为负值,或者加上+
使其不起任何作用(该选项用于对称)。带负号的:
1-(-(2)) = 1-(-2)
= 1+2
= 3
及
我看到你澄清了你的问题,说你来自C背景。在Python中,没有像C中的++
和--
这样的增量运算符,这可能是您感到困惑的根源。要在Python中增加或减少变量i
或j
,请使用以下样式:
i += 1
j -= 1
1+(+(+2))=3
1-(-2)=3
1-(-2))=-1额外的+,不是递增的(如c++中的++a或a++)。他们只是表明这个数字是正的 没有这样的运算符。虽然有一元+运算符和一元-运算符。一元+运算符对其参数没有影响。一元运算符对其运算符求反,或将其乘以-1
+1
->一,
->一,
这与+(++(1))相同
->三,
因为它和1++(2)是一样的
同样地,你也可以做--1表示-(-1),也就是+1
--1
->一,
为了完整性,没有*一元运算符。因此*1是一个错误。但是有一个**
运算符,它是的幂,它有两个参数
2**3
->8把它想象成1+(+1*(+1*2)))。第一个+是运算符,后面的加号是第二个操作数的符号(=2)
就像1--2与1--(-(2))或1-(-1*(-1*(2))一样,我相信它被解析为,第一个+作为二进制运算(add),其余的作为一元运算(正) 尝试: 一元-(减)运算符产生其数值参数的求反 一元+(加号)运算符不改变其数值参数
那么这是否意味着python中没有增量操作符呢?在python中增加一个变量i:i++=1-1:这个问题对++和--;直接在中回答了这些问题,但是我得到了1+++++++++++++++++++++++++++2的结果3,alsoNo-sweat:1++(+++++++++(+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++)12+是一元的-参见Greg Hewgill的回答。顺便说一句:这是Python创建者的设计决定。它应该严格禁止编写像i++j这样的不确定代码。
1+++2
--1
2**3
1 + (+(+2))
>>> +2
2
>>> ++2
2
>>> +++2
2
>>> -2
-2
>>> --2
2
>>> ---2
-2
>>> 1+(++2)
3