pq Formel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dash123
User
Beiträge: 1
Registriert: Sonntag 20. Februar 2022, 15:26

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
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

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