登录
首页 >  文章 >  python教程

Python解一元二次方程根教程

时间:2025-12-06 08:19:29 336浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

小伙伴们有没有觉得学习文章很有意思?有意思就对了!今天就给大家带来《Python求解一元二次方程根教程》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

  1. 一元二次方程 $ ax^2 + bx + c = 0 $($ a \neq 0 $)的根由判别式 $ D = b^2 - 4ac $ 决定:当 $ D > 0 $ 时有两个不等实根,$ D = 0 $ 时有重根,$ D < 0 $ 时无实根。

Python编程实战:求取一元二次方程的根

一元二次方程是形如 $ ax^2 + bx + c = 0 $ 的方程,其中 $ a \neq 0 $。求解它的根可以使用判别式法,通过判断判别式的正负来确定根的类型。下面我们将用 Python 编写一个完整的程序,计算一元二次方程的根。

理解判别式与根的关系

对于方程 $ ax^2 + bx + c = 0 $,其判别式为:

$ D = b^2 - 4ac $

根据 $ D $ 的值,可以得出以下结论:

  • 若 $ D > 0 $:有两个不相等的实数根
  • 若 $ D = 0 $:有一个重根(两个相等的实数根)
  • 若 $ D

编写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 基础。实际应用中还可以扩展支持分数输入或图形化界面。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>