You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算-27的立方根输出复数,如何避免得到复数结果?

问题原因

Python 中直接对负数使用分数次幂**运算时,默认返回的是复数域的主根,因此你计算-27的立方根才会得到复数结果,而非实数范围内的正确解-3。

解决方案1:通用奇数次开根适配

如果需要适配任意奇数次开实数根的需求,可以先判断底数符号和根指数的奇偶性,满足负数开奇数次根的条件时,先计算绝对值的根再补回负号:

n1, n2 = -27, 3
if n1 < 0 and n2 % 2 == 1:
    root = -(abs(n1) ** (1/n2))
else:
    root = n1 ** (1/n2)
print(root)

运行后输出结果为-3.0。

解决方案2:专用立方根方法

如果仅需要计算立方根,可以直接使用numpy库的cbrt()方法,该方法原生支持负数输入,直接返回实数立方根:

import numpy as np
n1 = -27
root = np.cbrt(n1)
print(root)

运行后输出结果为-3.0。


内容的提问来源于stack exchange,提问作者FishyBusinessYT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:15:04