gpt4 book ai didi

python - python中的二次公式求解器

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:00 29 4
gpt4 key购买 nike

我对 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)

当我运行它时,它给出了错误

Traceback (most recent call last):
File "python", line 19, in <module>
File "python", line 12, in quad_solve
ValueError: math domain error

我不是很懂。

我正在尝试创建一个二次公式求解器。我使用 math 模块,然后定义三个变量 a、b 和 c。然后,我定义了一个接受这些变量的函数(我在最后调用了该函数)。在函数中,我定义了四个量。 q1是平方根下的b平方,q2是平方根下的4ac,q3是分母, q4 计算平方根下的总数(即 q1 - q2)。然后,我定义了一个名为 sqr 的变量,它等于 q4 的平方根。然后,我定义了另外四个变量,用于计算解决方案。 sol1p1 取 b + sqr,sol1p2sol1p1 并将其除以二。这给出了第一个解决方案。然后,sol2p1 取 b - sqr,sol2p2sol2p1 并将其除以二。最后,sol1p2sol2p2 被打印在一组括号中,中间有一个逗号。我希望这是有道理的;如果需要对变量名称进行任何说明,请告诉我。

我正在使用在线编译器 repl.it(我不知道是否有什么特别需要考虑的)。

谢谢!


编辑:

我根据 Code Apprentice 的建议更新了我的代码。我首先添加一个 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

我不确定为什么。

最佳答案

这是我用最少代码行的答案版本:

import cmath

#Your Variables
a = 5
b = 5
c = 5

#The Discriminant
d = (b**2) - (4*a*c)

#The Solutions
solution1 = (-b-cmath.sqrt(d))/(2*a)
solution2 = (-b+cmath.sqrt(d))/(2*a)
print (solution1)
print (solution2)

关于python - python中的二次公式求解器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377432/

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