我对python有点陌生,但我正在尽力学习。我的代码是
import math
a = 5
b = 5
c = 5
def quad_solve(a, b, c):
q1 = b*b
q2 = 4*a*c
q3 = 2*a
q4 = q1-q2
sqr = math.sqrt(q4)
sol1p1 = b+sqr
sol1p2 = sol1p1/2
sol2p1 = b-sqr
sol2p2 = sol2p1/2
print ("(",sol1p2,",",sol2p2,")")
quad_solve(a, b, c)
当我运行它时,它会给出错误
^{pr2}$我不太明白。在
我正在尝试创建一个二次公式求解器。我使用数学模块,然后定义三个变量,a、b和c。然后,我定义一个接受这些变量的函数(最后调用函数)。在函数中,我定义了四个量。q1
是平方根下的b平方,q2
也是平方根下的4ac,q3
是分母,q4
计算平方根下的总和(即q1
-q2
)。然后,我定义了一个名为sqr
的变量,它等于q4
的平方根。然后,我定义了另外四个变量,这些变量用于计算解。sol1p1
取b+sqr,sol1p2
取{sol2p1
取b-sqr,sol2p2
取{sol1p2
和{
我正在使用在线编译器更换(我不知道有没有什么特别需要考虑的)。在
谢谢!在
编辑:
我根据学徒的建议更新了我的代码。我首先添加了一个if语句:
import math
a = 5
b = 5
c = 5
def quad_solve(a, b, c):
q1 = b*b
q2 = 4*a*c
q3 = 2*a
q4 = q1-q2
check = math.tan(q2)
if (q1 > check):
sqr = math.sqrt(q4)
sol1p1 = b+sqr
sol1p2 = sol1p1/2
sol2p1 = b-sqr
sol2p2 = sol2p1/2
print ("(",sol1p2,",",sol2p2,")")
else:
print "Imaginary number. There are no zeros."
quad_solve(a, b, c)
但它仍在继续返回错误
Traceback (most recent call last):
File "python", line 23, in <module>
File "python", line 14, in quad_solve
ValueError: math domain error
我不知道为什么。在
如果您只是想得到一个结果(而不是学习如何做到这一点),您可以使用sympy:
b^2必须大于4ac,所以现在,
sqrt()
函数得到一个负数。在这是我用最少的代码行得到的答案:
相关问题 更多 >
编程相关推荐