python应用问题解决

img

这种错误应该怎么解决哇

原题如下:
1.方程ax2+bx+c=0,输入a,b,c的值,根据a,b,c的值判断不同的输出情况情况,判断并输出结果
“有两个根x1= ? ,x2=?”;“有一个根x=?”;“没有根”。保留6位小数。
输入输出样例:
1 (注:运行时的输入)
4
2
有两个根x1=-0.585786,x2=-3.414214 (注:运行时的输出,注意中间的逗号是英文逗号)

有没有根的判断条件是b^2-4ac是否大于0,你的代码中的写的有问题。因为如果没有根的话,你的代码开根号会有问题,修改如下,只有有根的情况下才对b^2-4ac开根号。望采纳!!!!

a = float(input())
b = float(input( ))
c = float(input( ))
if a != 0:
    deta = (b**2-4* a * c)
    if deta < 0 :
        print('没有根')
    elif deta == 0:
        print('有一个根x=: i:.6f}'.format( (-b)/(2 * a) ))
    else:
        deta = deta**(1/2)
        x1=((-b)+deta)/(2 * a)
        x2=((-b)-deta)/(2 * a)
        print('有两个根x1={:.6f},x2={:.6f} '.format(x1,x2))

elif b != 0:
    print('有一个根x=: i:.6f] '.format((-c)/b))
elif c != 0:
    print('没有根')
else:
    print( '有一个根x=: {:.6f} ' .format(c))


运行结果:

img

img

delta赋值有问题,右边你是要开根号,但不能对负数开根号啊

delta = b * b - 4 * a * c
if delta < 0:
    print("没有根")
elif delta == 0:
   #这里是一个根
else:
  delta = delta ** (1/2)
  #这里是两个根

瞎写
好好上网查求根公式
你上来就开方,开出复数来了