我试图自己解决这个问题,但我不能。它是一个函数,用于求解 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 开始,所以我很抱歉,这是一场灾难。
这里的问题是标准math
python 中的库无法处理复杂变量。这sqrt
你站在那里反映了这一点。
如果您想处理可能具有复杂变量的函数(例如上面的函数),我建议使用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 兼容))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)