用Python来编一个求一元二次方程的根的程序

用Python来编一个求一元二次方程的根的程序

问题描述:

一元二次方程ax2+bx+c=0(注:2为幂指数),a、b、c的值由用户在三行中输入,根据用户输入的数值,求解方程的实数解:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬
(1)如果a值为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出:Data error‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬
(2)如果方程无实数解,则输出:该方程无实数解‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬
(3)如果方程有两个相同的实数解,输出一个解‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬
(4)如果方程有两个不同实数解,分两行按从大到小输出方程的两个解,保留两位小数。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

a=int(input())
b=int(input())
c=int(input())
if a==0:
    if b==0:
        print('Data error')
    else:
        print('{:.2f}'.format(-c/b))
else:
    d=b*b-4*a*c
    if d<0:
        print('该方程无实数解')
    elif d==0:
        print('{:.2f}'.format(-b/(2*a)))
    elif d>0:
        x1=(-b+math.sqrt(d))/(2*a)
        x2=(-b-math.sqrt(d))/(2*a)
        print('{:.2f}'.format(x1))
        print('{:.2f}'.format(x2))


 有帮助请采纳


a = float(input("输入a").strip())
b = float(input("输入b").strip())
c = float(input("输入c").strip())
x1 = 0 # 方程组的解1
x2 = 0 # 方程组的解2

if a == 0:
    # 根据b的值,来判定是否是DataError
    if b == 0:
        print("Data Error")
    else:
        print("解为: {:.2f}".format(-c/b))
else:
    d = b * b - 4 * a * c
    if d < 0:
        print("该方程无实数解")
    elif d == 0:
        print("方程组有相同的实数解:{:.2f}".format(-b/(2*a)))
    else:
        x1 = (-b + d ** 0.5 / (2 * a))
        x2 = (-b - d ** 0.5 / (2 * a))
        print("方程有两个不同的实数解:x1 = {},x2 = {}".format(max([x1,x2]),min([x1,x2])))

结果:

img

如果觉得答案对你有帮助,请点击下采纳,谢谢~