Warum funktioniert dieser Python-Code nicht?


14.07.2021, 19:52

Das kommt raus wenn ich das Programm starte und Strom errechnet haben will:

Welchen Wert suchst du? Strom
1
Wie hoch ist die Spannung in Volt? 20
Wie viel Ampere fließen? 5
Der Widerstand beträgt  4 Ohm!
2
Wie viel Ampere fließen?

3 Antworten

mal grundsätzlich sollte das nie gehen ausser python wäre was ganz anderes

eingabe == "Strom" or "strom"

eingabe == "Strom" => wahr oder falsch

OR

"strom" => größer 0 => immer wahr ?

deswegen wird wohl einmal alles durchgegangen , weil immer bei jedem WAHR rauskommt

wenn 2 booleans bauen

eingabe == "Strom" OR eingabe == "strom"
if eingabe == "Widerstand" or "widerstand":

Diese Bedingung wird immer erfüllt. Es wird hier nämlich nicht geprüft ob eingabe gleich "Widerstand" oder gleich "widerstand" ist. Du verbindest zwei boolsche Ausdrücke mit dem OR. Davon prüft der eine tatsächlich ob eingabe == "Widerstand" und der andere wird immer zu True evaluiert.

if eingabe.lower() == "widerstand":

oder

if eingabe in ["Widerstand", "widerstand"]:

oder

if eingabe == "Widerstand" or eingabe == "widerstand":

Für den Anfang:

if eingabe == "Widerstand" or eingabe=="widerstand":

einfacher:

if eingabe.lower() == "widerstand":

Zur Erklärung, was Du falsch machst:

>>> bool("")
False
>>> bool("asdads")
True