Seite 1 von 1

Boolean in if-Statement ändern

Verfasst: Montag 28. Februar 2022, 14:01
von Curse
Hallo zusammen,

ich bin seit ca. 1 - 2 Monaten dabei Python zu lernen, hab auch schon die Basics relativ gut drauf...
Nur jetzt steh ich vor einem Problem, wo ich erst dachte dass ich ganz einfach die Lösung finden werde, nur jetzt doch mein Kopf dran zerbreche... :oops:

Der Code ist ganz simple:

Code: Alles auswählen

Abfrage = True

while Abfrage:
    Frage = input("Weitermachen?(Y/N)")
    if Frage == "Y" or "y":
        print("Weitermachen")
    elif Frage == "N" or "n":
        Abfrage = False
    else:
        print("Bitte gebe nur 'Y' für ja oder 'N' für nein an!")
        
print("Beendet")
Gebe ich nun "N" an kriege ich als Output "Weitermachen" sowie den input("Weitermachen?(Y/N)").
Wie kann das sein? Die While-Abfrage ist ja somit unendlich, obwohl doch beim input -> Y die Abfrage auf = False gestellt wird?

Liebe Grüße

Re: Boolean in if-Statement ändern

Verfasst: Montag 28. Februar 2022, 14:36
von __deets__
or funktioniert nicht wie du denkst. Wenn du prüfen willst, ob etwas dieses oder jenes ist, braucht es

a == dieses or a == jenes

Re: Boolean in if-Statement ändern

Verfasst: Montag 28. Februar 2022, 14:46
von einfachTobi
Ergänzend:
In dem Fall vielleicht hilfreich: in

Code: Alles auswählen

while True:
    antwort = input("Weitermachen? (Y/N)")
    if antwort in ("y", "Y"):
        print("weitermachen")
    elif antwort in ("N", "n"):
        break
    else:
        print("Bitte gebe nur 'Y' für ja oder 'N' für nein an!")

Re: Boolean in if-Statement ändern

Verfasst: Montag 28. Februar 2022, 14:58
von __blackjack__
Oder man wandelt die Eingabe in Gross- oder Kleinbuchstaben und vergleicht dann: ``antwort = input("…").lower()`` und dann einfach nur noch ``if antwort == "y":``.

Re: Boolean in if-Statement ändern

Verfasst: Montag 28. Februar 2022, 15:21
von narpfel
Oder vielleicht:

Code: Alles auswählen

while True:
    antwort = input("Weitermachen? (Y/N) ")
    match antwort:
        case "y" | "Y":
            print("weitermachen")
        case "n" | "N":
            break
        case _:
            print("Bitte gib nur 'Y' für ja oder 'N' für nein an!")
🤢

Re: Boolean in if-Statement ändern

Verfasst: Montag 28. Februar 2022, 16:09
von Curse
Vielen Dank für die ganzen Antworten!
__deets__ hat geschrieben: Montag 28. Februar 2022, 14:36 or funktioniert nicht wie du denkst. Wenn du prüfen willst, ob etwas dieses oder jenes ist, braucht es

a == dieses or a == jenes
Stimmt, du hast vollkommen recht! Das Problem hatte ich in der Vergangenheit schonmal aber hatte es echt schon wieder vergessen. Jetzt klappt es, besten Dank euch allen! :lol: :D