Python中关于乘方运算符(**)的优先级和结合性,搜索很多的文章,得到的几乎都是如下的结果:
优先级没啥疑问,但是结合性呢?
**运算符的结合性为左结合,那么多个**在一起运算时,从左向右计算吗?实践出真知,我们用IDLE来试验一下:
显然,对于表达式2**2**3的运算结果与2**(2**3)的结果一致,也就是说,**运算符的结合性应该是右结合。
当然我们在写代码的时候,为了避免出现以上歧义,一般都要增加括号,先计算谁就在谁的两边增加括号。
Python中关于乘方运算符(**)的优先级和结合性,搜索很多的文章,得到的几乎都是如下的结果:
优先级没啥疑问,但是结合性呢?
**运算符的结合性为左结合,那么多个**在一起运算时,从左向右计算吗?实践出真知,我们用IDLE来试验一下:
显然,对于表达式2**2**3的运算结果与2**(2**3)的结果一致,也就是说,**运算符的结合性应该是右结合。
当然我们在写代码的时候,为了避免出现以上歧义,一般都要增加括号,先计算谁就在谁的两边增加括号。