《Python数学编程》练习-day009:编写一个计算程序(4)[求解二次方程的根]
提示→《Python数学编程》练习系列往期笔记,如下 👇:
Day1:《Python数学编程》练习-day001:斐波那契序列
Day2:《Python数学编程》练习-day002:分数操作
Day3:《Python数学编程》练习-day003:基本数学运算
Day4:《Python书序编程》练习-day004:复数
Day5:《Python书序编程》练习-day005:数值输入
Day6:《Python书序编程》练习-day006:计算整数因子
Day7:《Python书序编程》练习-day007:生成乘法表
Day8:《Python书序编程》练习-day008:测量单位转换
提示:菜鸟一枚,此系列文主要是用于我自己的学习记录,如果能对您有帮助,我荣幸至极。
前言
今天这篇笔记,主要学习一下使用Python求解二次方程的根,不涉及到非常高深的内容。
提示:以下是本篇文章正文内容。
一、第四个数学计算程序:求解二次方程的根
二次方程的形式,下:
a
x
2
+
b
x
+
c
=
0
\ ax^{2}+bx+c = 0
ax2+bx+c=0
对应的根公式:
x
1
=
−
b
+
b
2
−
4
a
c
2
a
(1)
\tag{1}x_1=\frac{-b +\sqrt{b^{2}-4ac}}{2a}
x1=2a−b+b2−4ac(1)
x
1
=
−
b
−
b
2
−
4
a
c
2
a
(2)
\tag{2}x_1=\frac{-b -\sqrt{b^{2}-4ac}}{2a}
x1=2a−b−b2−4ac(2)
(求解程序是是把上面求根的公式(1)、(2)进行代码化)。
二、程序
1.求解二次方程的根
代码如下:
def roots(a, b, c):
# (b**2 - 4*a*c) ** 0.5,在x_1和x_2中重复出现,如果不进行赋值,则会重复写,使代码冗余
D = (b**2 - 4*a*c) ** 0.5
x_1 = (-b + D) / (2*a)
x_2 = (-b - D) / (2*a)
if x_1 == x_2:
print('x1 = x2: {0}'.format(x_1))
else:
print('x1:{0}'.format(x_1))
print('x2:{0}'.format(x_2))
if __name__ == '__main__':
a = float(input('Enter a:'))
b = float(input('Enter b:'))
c = float(input('Enter c:'))
roots(a, b, c)
求解例子:
x
2
+
2
x
+
1
=
0
\ x^{2}+2x+1 = 0
x2+2x+1=0
运行:
Enter a:1
Enter b:2
Enter c:1
结果:
>>>
x1 = x2: -1.0
2.程序分析
这个程序主要主要用到的是:1)定义函数;2)if条件语句的反复运用,程序语法不难;3)把重复性的代码表达可以进行赋值。
总结
1.完成公式向程序语言的转化。
2.源代码上传到了资源。
3.重复代码进行赋值,减少重复。