gpt4 book ai didi

python - 为什么我得到分数幂的正结果?

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:19 25 4
gpt4 key购买 nike

IDLE 的以下输出对我来说毫无意义。

>>> a=-1.0
>>> a**(1/3)
1.0
>>> a==-1.0
True
>>> -1.0**(1/3)
-1.0

为什么两个理论上等价的语句返回不同的结果? Python (2.7) 是如何处理 __pow__ 方法的 double 值的?我也只是用整数试了一下,得到了同样的结果。除了计算 __pow__ 函数的输入符号并将其复制到结果之外,我该如何解决这个问题?

最佳答案

这是一个运算符优先级问题:

>>> -1.0**(1/3)
-1.0
>>> (-1.0)**(1/3)
1.0

此外,请注意 (1/3) 为零,除非您从 __future__ 导入 division,这将提供 Python 3.x 行为(和一个 ValueError)。使用 1/3. 得到 1/3 作为 float 。

关于python - 为什么我得到分数幂的正结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14878664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com