TypeError:'complex'和'int'的实例之间不支持'< ='

时间:2017-04-04 12:14:21

标签: python

我正在用Python编写程序,但我无法通过此异常

from cmath import sqrt;

a = int(input("Podaj pierwsza liczbe: "));
b = int(input("Podaj druga liczbe: "));
c = int(input("Podaj trzecia liczbe: "));

if a<=0:
    print("Nie można policzyc delty");
else:
        delta = sqrt(b*b-4*a*c);
        print("delta wynosi:",delta);

if (delta <= 0):
    print("Nie obliczymy miejsca zerowe");
elif (delta == 0):
        x = -b/(2*a);
        print("Miejsce zerowe wynosi:",x);
elif (delta >= 0):
        x1 = ((-b-delta)/(2*a));
        x2 = ((-b+delta)/(2*a));
        print("Pierwsze miejsce zerowe wynosi:",x1);
        print("Drugie miejsce zerowe:",x2);



Traceback (most recent call last):
  File "C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/Rownanie kwadratowe.py", line 14, in <module>
    if (delta <= 0):
TypeError: '<=' not supported between instances of 'complex' and 'int'
你可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

<MYROOT test1="someattribute1" test2="someattribute2" staticobject="true"> <SOMEDATA> <DATA>...</DATA> <DATA>...</DATA> </SOMEDATA> </MYROOT> 无法产生负面结果。当传递一个负数时,你得到一个复数类型,它不能与整数/浮点数进行比较,这解释了错误信息。

现在你的真正的问题:

你必须测试sqrt的符号(已经是判别式)并且仅在正数时执行平方根。

b*b-4*a*c

(BTW掉落尾随的分号)