python - 为什么 -2**2 == -4 但 math.pow(-2, 2) == 4.0?

标签 python python-3.x math operators

为什么这两个语句不等价?

>> math.pow(-2,2)
4.0
>> -2 ** 2
-4

Python 3.5.3(默认,2017 年 1 月 19 日,14:11:04)

最佳答案

运算符的执行顺序(运算符优先级)在这里很重要:对于 -2**2,首先执行 2 的 2 次幂,然后执行负号。

使用括号得到想要的结果

(-2)**2 = 4

关于python - 为什么 -2**2 == -4 但 math.pow(-2, 2) == 4.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45910687/

相关文章:

python - 无法升级 Scipy

python - 当我尝试将数据框转换为 Excel 文件时,列顺序被破坏

python - 如何根据Python中的随机打印来打印不同的项目?

python - Python在比较int和float时什么时候进行类型转换?

java - 用一条线连接两个圆

python - Pandas - 基于列中第一个字母的 GroupBy 值

python-3.x - 如何解决GET参数中的API key 错误?

python - 如何解决 "No module named ' 前端'”错误消息?

security - 什么是Android点密码系统的熵?

python - Python 中的 Cholesky 分解,递归