2016-09-11 7 views
0

Не могли бы вы, ребята, помочь мне найти неправильную часть кода? Я пробовал некоторые вещи и искал на этом сайте, но я не мог найти решение .. Если вы, ребята, знаете, что-то, пожалуйста, дайте ему знать: DТипError: unorderable types: str() <= int() error

print("Uw formule is ax**2+bx+c") 
a= float(input("Geef getal a:")) 
b= float(input("Geef getal b:"))   
c= float(input("Geef getal c:")) 
D=b**2-4*a*c 

while (D<=0) or (a==0): 
    print("Voer nieuwe getallen in, de uitkomst is niet te berekenen") 
    a= float(input("Geef getal a:")) 
    b= float(input("Geef getal b:")) 
    c= float(input("Geef getal c:")) 
    D=b*b-4*a*c 
    D= format(D,'.1f') 

if (D>0): 
    print("\nDe discriminant is:", D) 
    x1= (-b-(D)**0.5)/(2*a) 
    x1= format(x1,'.1f') 
    x2= (-b+(D)**0.5)/(2*a) 
    x2= format(x2,'.1f') 

print("De uitkomst van x1=", x1) 
print("De uitkomst van x2=", x2) 

Тогда ошибка:

Traceback (most recent call last): 
    File "*****", line 15, in <module> 
    while (D<=0) or (a==0): 
TypeError: unorderable types: str() <= int() 

ответ

0

В конце цикла for вы переназначаете D на результат звонка format. Это всегда сделает его строкой.

Я не уверен, почему вы это делаете, но вы должны удалить эту строку.

0

Спасибо! Я решил это с:

print("Uw formule is ax**2+bx+c") 
a= float(input("Geef getal a:")) 
b= float(input("Geef getal b:"))   
c= float(input("Geef getal c:")) 
D=b**2-4*a*c 

while (D<=0) or (a==0): 
    print("Voer nieuwe getallen in, de uitkomst is niet te berekenen") 
    a= float(input("Geef getal a:")) 
    b= float(input("Geef getal b:")) 
    c= float(input("Geef getal c:")) 
    D=b*b-4*a*c 
    D1= format(D,'.1f') #this code 

if (D>0): 
    print("\nDe discriminant is:", D1) 
    x1= (-b-(D)**0.5)/(2*a) 
    x1= format(x1,'.1f') 
    x2= (-b+(D)**0.5)/(2*a) 
    x2= format(x2,'.1f') 

print("De uitkomst van x1=", x1) 
print("De uitkomst van x2=", x2) 
+1

На этом сайте продемонстрируйте свою оценку, положив все полезные ответы. Вы делаете это, нажимая стрелку вверх в левом верхнем углу ответа. Кроме того, примите наилучший ответ, щелкнув галочку в левом верхнем углу ответа. Это лучше, чем сказать спасибо в комментарии. –