Hallo,
ich hätte eine frage bezüglich while schleifen. Ich würde gerne die while schleife solange laufen lassen bis ich ,,aufhören" schreibe, aber eben für verschiedene Ereignisse. Heißt also wenn ich "x" als aufhören definiere, soll die while schleife aufhören, aber auch wenn ich "y" als aufhören definiere. Eine Fehlermeldung kommt nicht, allerdings reagiert das Programm nicht auf ,,Aufhören". Die while Schleife geht einfach weiter. Vielen dank im voraus.
Hier mein Fehler:
x = 1
y = 2
while x != "aufhören" or y != "aufhören":
x = raw_input( )
y = raw_input( )
While schleifen mit mehreren Ereignissen
Dass das nicht funktioniert, liegt an dem logischen Ausdruck im Schleifenkopf. Die Schleife wird solange ausgeführt, wie der Gesamtausdruck wahr ist.
Das ist nur dann nicht der Fall, wenn sowohl x als auch y den Wert 'aufhören' haben. Damit das funktioniert, müsstest du oder durch und ersetzen.
Ich würde folgendes bevorzugen:
Das ist nur dann nicht der Fall, wenn sowohl x als auch y den Wert 'aufhören' haben. Damit das funktioniert, müsstest du oder durch und ersetzen.
Ich würde folgendes bevorzugen:
Code: Alles auswählen
while True:
x = input()
y = input()
if x == 'aufhören' or y == 'aufhören':
break
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Um Bugs durch den falsch geschriebenen String zu vermeiden kann man noch folgendes tun:
Alternativ kann das Stoppwort vorher natuerlich auch an einen Namen binden und dann `x` und `y` mit dem Namen vergleichen.
Code: Alles auswählen
while True:
x = input()
y = input()
if 'aufhören' in (x, y):
break
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte