Hallo, also das ist mein Programm um Nullstellen mithilfe der pq Formel zu lösen. Mein Problem ist, dass die Nullstellen bei der if Anweisung wenn ich das so schreibe nicht berücksichtigt werden. Ich habe auch schon versucht Sachen anders einzurücken, aber es funktioniert irgendwie nicht und jetzt bekomme ich für die Werte print(Nullstellen(1,3,1) None als Ergebnis, wenn ich für a, null einsetzte kommen die beiden Nullstellen (0,0) raus das funktioniert also.
ich hoffe mir kann jemand helfen.
def nullstellen(a,b,c):
if a != 0:
p = b/a
q = c/a
nullstelle1 = -p/2 + math.sqrt((p/2)**2-q)
nullstelle2 = -p/2 - math.sqrt((p/2)**2-q)
else:
nullstelle1 = 0
nullstelle2 = 0
return [nullstelle1, nullstelle2]
print(nullstellen(1,3,1)) ## verschiedene Testwerte ausprobieren
pq Formel
@dash123,
die Einrückung war tatsächlich falsch. Das 'return' war zu tief eingerückt. Es muss auf der gleichen Tiefe wie 'if' und 'else' stehen.
Per Konvention verwendet man 4 Zeichen für die Einrückung.
So ganz fertig ist das aber noch nicht, oder? Es kann ja auch sein, dass es gar keine Nullstelle oder nur eine gibt. Bei a == 0 ist die Nullstelle auch nicht automatisch 0.
die Einrückung war tatsächlich falsch. Das 'return' war zu tief eingerückt. Es muss auf der gleichen Tiefe wie 'if' und 'else' stehen.
Per Konvention verwendet man 4 Zeichen für die Einrückung.
Code: Alles auswählen
import math
def nullstellen(a, b, c):
if a != 0:
p = b / a
q = c / a
nullstelle1 = -p / 2 + math.sqrt((p / 2) ** 2 - q)
nullstelle2 = -p / 2 - math.sqrt((p / 2) ** 2 - q)
else:
nullstelle1 = 0
nullstelle2 = 0
return [nullstelle1, nullstelle2]
print(nullstellen(1, 3, 1)) ## verschiedene Testwerte ausprobieren