答案是使用math模块计算二次方程ax²+bx+c=0的实数根:先求判别式Δ=b²-4ac,若Δ>0有两个不同实根,Δ=0有一个重根,Δ

在Python中进行二次方程计算,可以通过数学公式直接求解。二次方程的一般形式是:ax² + bx + c = 0,其中a、b、c是系数,且a ≠ 0。解这个方程需要用到判别式和求根公式。
使用math模块求解实数根
如果只关心实数解,可以使用Python内置的math模块来计算平方根。先计算判别式 Δ = b² - 4ac:
- 若 Δ > 0,有两个不同的实数根
- 若 Δ = 0,有一个实数根(重根)
- 若 Δ
示例代码:
import mathdef solve_quadratic(a, b, c): if a == 0: print("这不是二次方程") return discriminant = b*2 - 4ac if discriminant > 0: root1 = (-b + math.sqrt(discriminant)) / (2a) root2 = (-b - math.sqrt(discriminant)) / (2a) print(f"两个实数根: {root1}, {root2}") elif discriminant == 0: root = -b / (2a) print(f"一个重根: {root}") else: print("无实数根")
使用cmath处理复数根
当判别式小于0时,结果为复数。使用cmath模块可以处理包含虚数的解,它支持复数开方。
立即学习“Python免费学习笔记(深入)”;
在现实生活中的购物过程,购物者需要先到商场,找到指定的产品柜台下,查看产品实体以及标价信息,如果产品合适,就将该产品放到购物车中,到收款处付款结算。电子商务网站通过虚拟网页的形式在计算机上摸拟了整个过程,首先电子商务设计人员将产品信息分类显示在网页上,用户查看网页上的产品信息,当用户看到了中意的产品后,可以将该产品添加到购物车,最后使用网上支付工具进行结算,而货物将由公司通过快递等方式发送给购物者
修改上面函数中的sqrt部分:
import cmathdef solve_quadratic_complex(a, b, c): if a == 0: print("这不是二次方程") return discriminant = b*2 - 4ac root1 = (-b + cmath.sqrt(discriminant)) / (2a) root2 = (-b - cmath.sqrt(discriminant)) / (2*a) print(f"根为: {root1} 和 {root2}")
这样即使Δ为负数,也能正确输出复数解,例如:3+4j 形式的结果。
简单调用示例
你可以这样测试函数:
solve_quadratic(1, -5, 6) # 解 x² -5x +6 =0 → 根为2和3 solve_quadratic_complex(1, 2, 5) # 解 x²+2x+5=0 → 复数根
基本上就这些。根据是否需要复数结果选择math或cmath,再结合条件判断即可完成二次方程求解。









