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

2024-05-20 23:57:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Picture with info

然后它抛出值错误:数学域错误! 为什么它会抛出错误,我知道当负数被提升到分数次幂,分母是偶数时,它会抛出错误,因为它是虚数。当我把这个例子中的x改为正时,它会输出有效的结果,但为什么会抛出错误呢?有人可以从数学的角度解释一下。为什么我不能将负十进制数提升为十进制数?(顺便说一句,它们都是相同的x幂数只有x是负数)

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

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


Tags: 方法fromimportinfonumber错误with数学
1条回答
网友
1楼 · 发布于 2024-05-20 23:57:04

发件人:negative pow in python

将负数提升为浮点幂将是一个复数。为了说明这一点,您可以将0j添加到指数中,让python知道您想要一个复杂的函数,然后只取实际的部分

下面的代码应该是您想要的

x = -0.0806
power_number = 0.0806

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

相关问题 更多 >