要求是这样的
if bb-4ac < 0:
print("no real solution")
elif b*b-4*a*c > 0:
x1 = (-b-math.sqrt(bb-4ac))/2a
x2 = (-b+math.sqrt(bb-4ac))/2a
print("x1={:.3f}\nx2={:.3f}".format(x1,x2))
else:
x =-b/2a
print("x={:.3f}".format(x))
a,b,c = input().split()
a = int(a)
b = int(b)
c = int(c)
num1 = b ** 2 - 4 * a * c
if a == 0 and b == 0:
print("Date error")
elif a != 0 and b != 0:
if num1 < 0:
print("no real solution")
elif num1 == 0:
x = -b / (2 * a)
print(f"{x:.3f}")
else:
x1 = (-b + num1 ** 0.5) / (2 * a)
x2 = (-b - num1 ** 0.5) / (2 * a)
print(f"x1={x1:.3f}\nx2={x2:.3f}")
else:
x = -c / b
print(f"x={x:.3f}")
看看是不是缩进问题
你的代码里定义了函数root,但是在测试系统里可能不会调用root,所以出错。
你同学的代码没抄全吧?input得到的都是字符串,要转化成数字才能进行后面的计算。