python - 为什么 `-(num)**(even_number)` 结果是 `-(num^(even_number))`?

标签 python python-2.7

这是我注意到的一些奇怪的事情。

-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
>>>

最佳答案

在 Python 中,** 运算符有 higher precedence- 运算符,所以在你的表达式中 5 ** 2 首先被评估,然后被否定。您可以先使用括号应用否定:

>>> -5**2
-25
>>> (-5)**2
25

关于python - 为什么 `-(num)**(even_number)` 结果是 `-(num^(even_number))`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733958/

相关文章:

python - 如何使用切片列出文本中每个单词的最后两个字母的列表?

python - 如何从python中的列表列表中获取唯一组合值

python - For循环在Maya中复制对象——Python 2

python - 如何在 Python 中读取键盘输入

python - 图片的一部分变成numpy数组

python - 有条件地切片列表

python - 如何在 Python 中找到从周日开始的周数?

python - PyGTK、线程和 WebKit

python - urllib2:即使出现异常也可以获取 URL 内容

python-2.7 - odoo安装后,CSS和JS都找不到