Python if else problem was tun?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
x = input('1 oder 2 eingeben: ')
while x.strip() not in ['1','2']:
  print('Bitte geben sie nur 1 oder 2 ein!!')
  x = input('1 oder 2 eingeben: ')
if x == '1': 
  print('Eins erkannt')
elif x == '2':
  print('Zwei erkannt')
Woher ich das weiß:Studium / Ausbildung – Informatikstudent

done=False
while not done:
    x=input("1 oder 2 eingeben: ").strip():
    match(x):
        case '1':
            print('Eins erkannt')
            done=True
        case '2':
            print('Zwei erkannt')
            done=True
        case _:
            print ('Fehlerhafte Eingabe, sie müssen 1 oder 2 eingeben')

So sollte sich das beispielsweise lösen lassen

Du hast zweimal eine Eingabe, aber die Prüfung der Eingabe erfolgt nur beim ersten Mal. Dort, wo du die WHILE Schleife hast, prüfst du ja gar nicht mehr.

Außerdem noch eine Anmerkung: du verwendest dieselbe Variable für die Eingabe seblst und "missbrauchst" sie dann, um das dir Ergebnis der Prüfung zu merken. Gaaanz schlechter Stil! Am Schluss (wenn alles funktionieren würde), wüsstest du zwar, dass die Eingabe gültig war, aber du weißt nicht mehr, _was_ die Eingabe war.