gpt4 book ai didi

python - 值错误 : Math domain error (for a 2nd grade equation function)

转载 作者:太空宇宙 更新时间:2023-11-04 10:31:16 25 4
gpt4 key购买 nike

我试图自己解决问题,但我做不到。它是一个函数,用于在 y=0 时求解二年级方程式,例如“ax2+bx+c=0”。当我执行它时,它说我有数学域错误。如果你能帮助我,那就太好了。

a=raw_input('put a number for variable a:')    
b=raw_input('put a number for variable b:')
c=raw_input('put a number for variable c:')

a=float(a)
b=float(b)
c=float(c)`

import math


x=(-b+math.sqrt((b**2)-4*a*c))/2*a
print x`

x=(-b-math.sqrt((b**2)-4*a*c))/2*a`
print x

PD:我是从 Python 开始的,所以非常抱歉。

最佳答案

这里的问题是 python 中的标准 math 库无法处理复杂的变量。你在那里得到的 sqrt 反射(reflect)了这一点。

如果你想处理一个可能有复杂变量的函数(比如上面那个),我建议使用 cmath library ,它有一个替换 cmath.sqrt 函数。

您可以将上述代码更改为以下内容:

from cmath import sqrt

a = raw_input('put a number for variable a:')
b = raw_input('put a number for variable b:')
c = raw_input('put a number for variable c:')

a = float(a)
b = float(b)
c = float(c)`

x = (-b + sqrt((b**2) - 4 * a * c)) / 2 * a
print x`

x = (-b - sqrt((b**2) - 4 * a * c)) / 2 * a`
print x

它应该可以解决您的问题(我还进行了一些编辑以使代码看起来更像 pythonic(阅读:符合 pep8))

关于python - 值错误 : Math domain error (for a 2nd grade equation function),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26345533/

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