用于解一元二次方程的 Python 程序

要理解这个例子,你应该具备以下 Python 编程 主题的知识


二次方程的标准形式是

ax2 + bx + c = 0, where
a, b and c are real numbers and
a ≠ 0

此二次方程的解由以下公式给出

(-b ± (b ** 2 - 4 * a * c) ** 0.5) / (2 * a)

源代码

# Solve the quadratic equation ax**2 + bx + c = 0

# import complex math module
import cmath

a = 1
b = 5
c = 6

# calculate the discriminant
d = (b**2) - (4*a*c)

# find two solutions
sol1 = (-b-cmath.sqrt(d))/(2*a)
sol2 = (-b+cmath.sqrt(d))/(2*a)

print('The solution are {0} and {1}'.format(sol1,sol2))

输出

Enter a: 1
Enter b: 5
Enter c: 6
The solutions are (-3+0j) and (-2+0j)

我们导入了 cmath 模块来执行复数平方根运算。首先,我们计算判别式,然后找出二次方程的两个解。

您可以在上面的程序中更改 abc 的值并测试此程序。


另请阅读

在我们结束之前,让我们来检验一下你对这个例子的理解!你能解决下面的挑战吗?

挑战

编写一个函数来解决二次方程。

  • 定义一个函数,该函数将三个整数作为输入,表示二次方程的系数。
  • 返回二次方程的根。
  • 提示:二次公式是 x = [-b ± sqrt(b^2 - 4ac)] / (2a)
  • 平方根内的项 b^2 - 4ac 称为判别式。
  1. 如果判别式为正,则有两个实根。
  2. 如果判别式为零,则有一个实根。
  3. 如果判别式为负,则有两个复根。
  • 返回列表时,请确保 [-b + sqrt(b^2 - 4ac)] / (2a) 的解作为第一个解出现。
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战