ich wollte mal die verkürzte Schreibweise einer If-Anweisung testen und mir ist dabei ein "Fehler" aufgefallen.
Zu erst mal der Code den ich zum testen benutzt habe:
Code: Alles auswählen
def addiere(wert1,wert2):
ergebnis = wert1 + wert2
return ergebnis
try:
wert_1 = int(input("WERT1: "))
except:
print("Kein Wert wurde angegeben. Es wird eine 0 eingesetzt.")
wert_1 = 0
try:
wert_2 = int(input("WERT2: "))
except:
print("Kein Wert wurde angegeben. Es wird eine 0 eingesetzt.")
wert_2 = 0
ergebnis_von_funktion = addiere(wert_1,wert_2)
ergebnis = ergebnis_von_funktion if (wert_1 != 0 and wert_2 != 0) else print("Null plus Null ist Null") #?
print(ergebnis) if (ergebnis != 0 and ergebnis != None) else print("Das Ergebnis ist Null")
ich frage ja zwei Bedingungen ab. wert_1 soll ungleich 0 sein und wert_2 soll auch ungleich 0 sein. Wenn ich allerdings beim input bei nur einem der beiden Werte eine 0 eingeben, wird der else-Zweig in der verkürzten If-Anweisung ausgeführt. Daher meine Frage: Nimmt diese Form der If-Anweisung nur eine Bedingung auf oder habe ich einen Fehler im Code oder in meiner Denklogik? Und wird diese verkürzte Schreibweise eigentlich in der Praxis benutzt, da diese ja weniger übersichtlich ist?
MfG,
Jankie