Python if else problem was tun?
repeat_or_not = int(input("Sie müssen mit 1 oder 2 antworten: "))
if repeat_or_not == 1 or 2:
print("Fahre fort..")
repeat_or_not = False
else:
repeat_or_not = True
while repeat_or_not == True:
repeat_or_not = int(input("Sie müssen mit 1 oder 2 antworten: "))
Ich will dass wenn ich irgendetwas anderes als 1 oder 2 eintippe dann es die Aufforderung "Sie müssen mit 1 oder 2 antworten: " einfach loopt bis die Person 1 oder 2 eingibt. Aber wenn ich 9 eingebe dann printet es TROTZDEM "Fahre fort"...
ich spiele erst seit 20 Minuten mit Python herum hab null Erfahrung mit der Sprache
3 Antworten
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')
Das entfernt whitespace vorne und hinten. Also '1 ' würde dann auch akzeptiert werden.
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.
cool danke, aber was macht dieses .strip() ?