python显示十进制文字无效

我在试python时发现抱错,显示十进制文字无效并且把0标红了,这种情况改怎么解决啊

img

问题如下
1,a==0,dt==0,dt>0之后为中文的冒号,请使用英文的冒号
2,dt应为dt=b ** 2 * 4 * a * c
3,x1中的print应改为print("x1 = %0.2f"%(x1)),x2为print("x2 = %0.2f"%(x2))
4,x1改为x1=(-b+math.sqrt(dt))/2/a,x2改为x2=(-b-math.sqrt(dt))/2/a
正确代码如下

import math
a = float(input("请输入a:"))
b = float(input("请输入b:"))
c = float(input("请输入c:"))
dt=b*b-4*a*c
if a == 0:
    if b != 0:
        print("x = %0.2f"%(-c/b));
    else:
        print("此方程无实根")
else:
    if dt == 0:
        print("x1 = x2 = %0.2f"%(-b/2/a))
    else:
        if dt > 0:
            x1=(-b+math.sqrt(dt))/2/a
            x2=(-b-math.sqrt(dt))/2/a
            print("x1 = %0.2f"%(x1))
            print("x2 = %0.2f"%(x2))
        else:
            print("此方程有虚根")


根据你提供的图片,你的报错应该是因为if b!=0 :这句下面那行代码print("x = %0.2f"%(-c/b));后面那个分号是中文的分号导致;然后代码其他地方还有些问题,如判别式dt那里,以及几个求根的表达式那里不对,需要修改,修改如下:
参考资料:
python中print()函数里的%_hhhaoyi815的博客-CSDN博客_python中print%


一元二次方程20道典型例题,附详细解答过程
一元二次方程求根公式_百度百科


import math

a = float(input("请输入a:"))
b = float(input("请输入b:"))
c = float(input("请输入c:"))
dt = b**2-4*a*c

if a==0:
    if b!=0:
        print("x=%0.2f"%(-c/b))
    else:
        print("此方程无实数根")
else :
    if dt==0:
        #http://m.chusan.com/zhongkao/91799.html
        print("x1= x2 = %0.2f"%(-b/(2*a)))
    else :
        if dt >0:
            #https://baijiahao.baidu.com/s?id=1722370687157957463&wfr=spider&for=pc
            #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 +math.sqrt(dt))/(2*a)
            x2 = ( -b -math.sqrt(dt))/(2*a)
            print("x1 = %0.2f"% x1)
            print("x2 = %0.2f"% x2)
        else :
            print("此方程有虚根")

img