当我求幂时程序抛出值错误,Python 3

Program throws value error when I exponentiate, Python 3

from math import pow
    
x = -0.0806
power_number = 0.0806
    
rezultat = pow(float(x), float(power_number))

Picture with info

之后抛出 ValueError: 数学域错误! 为什么会抛出错误,我知道当负数被提升为分数次方并且分母为偶数时它会抛出错误,因为它是虚数。当我在此示例中将 x 更改为正值时,它会输出有效结果,但为什么会抛出错误,有人可以从数学角度解释一下。为什么我不能将负十进制数提高到十进制数? (顺便说一下,它们都是相同的 xpower_number 只有 x 是负数)

我猜这只是 python 认为只有一种方法可以进行求幂,所以也许我只是 通过使 x 为正然后将结果切换回负数来欺骗它。 但是,如果有其他方法,它会有所帮助。

当我从图片中输入 x 和 power_number 时,手持计算器给出了有效的输出并且没有抛出数学错误...

发件人:negative pow in python

负数的浮点次方将是复数。为了解决这个问题,您可以做的是将 0j 添加到指数中,让 python 知道您想要一个复数,然后只取实部。

下面的代码应该可以满足您的需求。

x = -0.0806
power_number = 0.0806

rezultat = pow(float(x), float(power_number) + 0j).real