这很奇怪我注意到了。
为什么-5**2给-25,math.pow(-5,2)给出25,有什么特别的原因吗?答案应该是25。那么-25的原因是什么呢?
>>> -5**2
-25
>>> -5**4
-625
>>> 5**2
25
>>> 5**4
625
>>> import math
>>> pow(-5,2)
25
>>> pow(-5,4)
625
>>>
发布于 2016-04-20 04:44:51
文档 for math.pow
指定它将x
提升到y
的能力。
因此,math.pow
计算(-5)**4
。而仅仅编写-5**4
等同于-1 * 5 **4
,因为在Python中,一元操作符-
的优先级小于power操作符**
。
发布于 2016-04-20 04:48:19
在Python中,**
运算符具有较高优先而不是-
运算符,因此在表达式中,5 ** 2
首先被求值,然后被否定。您可以首先使用括号应用否定:
>>> -5**2
-25
>>> (-5)**2
25
发布于 2016-04-20 04:48:14
这都是在文件中的解释
电力操作者比左边的一元运算符绑定得更紧密,而右边的电力操作员比一元运算符绑定得更紧。 因此,在无括号的幂和一元运算符序列中,从右到左计算运算符(这不限制操作数的求值顺序):-1**2的结果为-1。
https://stackoverflow.com/questions/36733958
复制相似问题