Python求解一元二次方程根教程
作者:EasyWind
时间:2025-12-03
浏览:0
<ol><li>一元二次方程$ax^2+bx+c=0$($a\neq0$)的根由判别式$D=b^2-4ac$决定:当$D>0$时有两个不等实根,$D=0$时有重根,$D<0$时无实根。</li></ol>
- 一元二次方程 $ ax^2 + bx + c = 0 $($ a \neq 0 $)的根由判别式 $ D = b^2 - 4ac $ 决定:当 $ D > 0 $ 时有两个不等实根,$ D = 0 $ 时有重根,$ D < 0 $ 时无实根。

一元二次方程是形如 $ ax^2 + bx + c = 0 $ 的方程,其中 $ a \neq 0 $。求解它的根可以使用判别式法,通过判断判别式的正负来确定根的类型。下面我们将用 Python 编写一个完整的程序,计算一元二次方程的根。
理解判别式与根的关系
对于方程 $ ax^2 + bx + c = 0 $,其判别式为:
$ D = b^2 - 4ac $
根据 $ D $ 的值,可以得出以下结论:
- 若 $ D > 0 $:有两个不相等的实数根
- 若 $ D = 0 $:有一个重根(两个相等的实数根)
- 若 $ D < 0 $:有两个共轭复数根
编写Python函数求解方程
我们可以定义一个函数 solve_quadratic,接收系数 $ a, b, c $,返回对应的根。
import math
def solve_quadratic(a, b, c):
if a == 0:
raise ValueError("a 不能为 0,否则不是二次方程")
discriminant = b**2 - 4*a*c
if discriminant > 0:
root1 = (-b + math.sqrt(discriminant)) / (2 * a)
root2 = (-b - math.sqrt(discriminant)) / (2 * a)
return f"两个实数根: {root1:.4f}, {root2:.4f}"
elif discriminant == 0:
root = -b / (2 * a)
return f"一个重根: {root:.4f}"
else:
real_part = -b / (2 * a)
imaginary_part = math.sqrt(-discriminant) / (2 * a)
return f"两个复数根: {real_part:.4f} + {imaginary_part:.4f}i, {real_part:.4f} - {imaginary_part:.4f}i"
# 示例调用
print(solve_quadratic(1, -5, 6)) # 两个实根
print(solve_quadratic(1, -2, 1)) # 重根
print(solve_quadratic(1, 2, 5)) # 复数根处理用户输入与异常情况
为了让程序更实用,可以加入用户输入功能,并做必要的错误处理。
def main():
print("求解一元二次方程 ax² + bx + c = 0")
try:
a = float(input("请输入 a: "))
b = float(input("请输入 b: "))
c = float(input("请输入 c: "))
result = solve_quadratic(a, b, c)
print(result)
except ValueError as e:
print(f"输入错误: {e}")
except Exception as e:
print(f"发生错误: {e}")
# 启动程序
# main()运行后,用户可输入任意实数系数,程序会自动判断并输出对应类型的根。注意要确保输入的是数字,避免因输入非数值导致程序崩溃。
基本上就这些。这个小项目锻炼了条件判断、数学运算和异常处理能力,适合初学者巩固 Python 基础。实际应用中还可以扩展支持分数输入或图形化界面。
作者最新文章
淘宝闪购“等灯不计时”机制解析:政策、技术与多方协同
2026-09-08 18:00
一加自研电竞三芯P4/G3/T3确认:一加16首发,支持185FPS及9000mAh电池
2026-09-08 16:52
抖音拍摄剪辑教程:从竖屏运镜到卡点成片
2026-09-03 06:05
Excel筛选大于指定数值:操作步骤与结果验证
2026-09-03 06:03
PDF添加文字水印:位置、透明度与字号设置指南
2026-09-03 06:01
上一篇:
Win11运行安卓App方法详解
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































