【Python算法作业】解一元二次方程
作者:互联网
【Python算法作业】解一元二次方程
# 求方程ax^2+bx+c=0的根
# 用到 math.sqrt()
import math
# solveEquation
def solveEquation(a, b, c):
print("您输入的方程是:")
print("{} * x^2 + {} * x + {} = 0 ".format(a, b, c))
# 判别式 delta
delta = b * b - 4 * a * c
x1 = -1 # 初始化 x1
x2 = -1 # 初始化 x2
flag = False # 用于判断是否有实根
# 有两个不同实根的情况 delta > 0
if (delta > 0):
# {x1->(-b-Sqrt[b^2-4 a c])/(2 a)},{x2->(-b+Sqrt[b^2-4 a c])/(2 a)
flag = True
x1 = (-b - math.sqrt(delta)) / (2 * a)
x2 = (-b + math.sqrt(delta)) / (2 * a)
if (delta == 0):
flag = True
x1 = -b / (2 * a)
x2 = x1
if (delta < 0):
flag = False
print("△={}^2 - 4*{}*{} 小于0,所以【无实数解】!".format(a, b, c))
return flag, x1, x2
if __name__ == '__main__':
a, b, c = map(float, input("求解一元二次方程【 ax^2+bx+c = 0 】 请输入3个参数 a, b, c 用空格隔开:").split())
print("您输入的参数: a = {}, b = {}, c = {}".format(a, b, c))
flag, x1, x2 = solveEquation(a, b, c)
if (flag == True):
print("方程有两个实根: x1 = {}, x2 ={}".format(x1, x2))
else:
print("方程无实根")
print("主程序运行结束。")
输出结果:
求解一元二次方程【 ax^2+bx+c = 0 】 请输入3个参数 a, b, c 用空格隔开:1 2 1
您输入的参数: a = 1.0, b = 2.0, c = 1.0
您输入的方程是:
1.0 * x^2 + 2.0 * x + 1.0 = 0
方程有两个实根: x1 = -1.0, x2 =-1.0
主程序运行结束。
标签:1.0,Python,flag,print,算法,一元二次方程,delta,x2,x1 来源: https://blog.csdn.net/hardwork617s/article/details/113738566