mit Python zwei Werte mit IF abfragen?
Ich versuche, mit Python zwei Werte abzufragen um festzustellen, ob beide Werte zutreffen. Bei meinen IF-Abfragen trifft immer nur der zweite IF zu, obwohl der erste auch zutrifft. Was mache ich da wohl falsch?
3 Antworten
Ich denke mal, du hattest vor, dass "ok" am Anfang 0 ist und wenn der Monat richtig ausgeschnitten wurde, soll es um 1 erhöht werden und wenn das Jahr richtig ausgeschnitten wurde, soll es nochmal um 3 erhöht werden, so dass am Ende 4 rauskommt, richtig?
Dieses "ok = + 1" ist für Python dasselbe, wie "ok = 1". Mit dem plus an der Stelle sagst du Python nur, dass die 1 ausdrücklich eine positive Zahl ist. Was du wahrscheinlich eigentlich machen wolltest ist "ok += 1", was bedeutet dass ok um 1 erhöht werden soll.
Dasselbe gilt natürlich auch für den Teil mit der 3. Mit "ok = + 3" setzt du ok auf den Wert 3. Egal was vorher drinstand. Mit "ok += 3" erhöhst du ok um 3. Wenn also vorher eine 1 drinstand, steht danach eine 4 drin.
Am besten wäre natürlich, wenn du einfach die auskommentierte Zeilen benutzt. da musst du nur die "jahr_aus_text" und "monat_aus_text" mit int() in Zahlen umwandeln, damit sie verglichen werden können (oder direkt mit "jahres_zahl" und "monats_nummer" vergleichen, weil das auch strings sind)
Ah!!! Vielen Dank. Das hilft mir SEHR weiter.
Das mit dem "and" hatte ich ja erst versucht und mich gewundert, dass das nicht klappte.
Toll.
Mit freundlichen Grüßen
Günther Friedrich
Du vergleichst zwei Werte mit jeweils anderem Datentyp (str und int). Die werden vom Vergleichsoperator nicht als gleich gewertet.
Passe beide Seiten aufeinander an. Entweder muss der String zu einer Zahl konvertiert werden oder die Zahl zu einen String.
Beispiel:
a = "4"
b = 4
if int(a) == b:
print("equal")
if a == str(b):
print("equal")