主要是求根那里的表达式有错误,测试例子使用的是第二个链接的第19题,修改如下:
参考链接:
a=float(input())
b=float(input())
c=float(input())
date = b**2-4*a*c #首先计算判别式,根据判别式的值再决定怎么计算一元二次方程的根,防止date小于0时,对date开平方报错
#https://baijiahao.baidu.com/s?id=1722370687157957463&wfr=spider&for=pc
if a==0:
if b!=0:
print("%0.2f"%(-c/b))
#print(x2)
else:
if a==0 and b==0:
print("Data error!")
else:
if date<0:
print("该方程无实数解")
elif date==0:
#http://m.chusan.com/zhongkao/91799.html
print("%0.2f"%(-b/(2*a)))
elif date>0 :
#https://baike.baidu.com/item/%E4%B8%80%E5%85%83%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B%E6%B1%82%E6%A0%B9%E5%85%AC%E5%BC%8F/56066624?fr=aladdin
x1 = (-b+(b*b-4*a*c)**(1/2))/(2*a)
x2 = (-b-(b*b-4*a*c)**(1/2))/(2*a)
if x1>x2:
print("%0.2f %0.2f"%(x1,x2))
else :
print("%0.2f %0.2f"%(x2,x1))
代码贴出来,另外要先判断再求x1,x2值