Seite 1 von 1

pq Formel

Verfasst: Sonntag 20. Februar 2022, 15:34
von dash123
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

Re: pq Formel

Verfasst: Sonntag 20. Februar 2022, 16:31
von rogerb
@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.

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
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.