Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么1+++;2 = 3?_Python_Evaluation_Operator Precedence - Fatal编程技术网

Python 为什么1+++;2 = 3?

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中的++和--这样的增量运算符

Python如何计算表达式
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