Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hallo zusammen,
ich möchte eine while-Schleife mit Hilfe einer Eingabe abbrechen.
Solange jedoch keine Eingabe erfolgt, soll diese Schleife weiterlaufen.
Vorgestellt habe ich es mir so:
wenn du in Python 3 programmierst, ist die Rückgabe von "input()" immer ein String. Diesen versuchst du mit einem Integer zu vergleichen. Folglich wird deine Abfrage niemals wahr sein.
So würde es funktionieren:
Da würde man erstens sicher einfach '1' statt str(1) verwendet und zweitens wird die Ausführung der Schleife durch das input angehalten.
Richtig, es hätte den selben Effekt und wäre schneller geschrieben. Um die Problematik darzustellen finde ich allerdings "str()" wesentlich aussagekräftiger. Was willst du mir mit zweitens sagen? Klar wartet der Interpreter nach dem input() auf eine Eingabe. Verlassen wird sie aber nur wenn der Nutzer eine "1" eingibt.
mzwle hat geschrieben:@Sirius3: Vielen Dank für die schnelle Antwort
Wie kann ich jetzt noch festlegen, dass es nur bei einer bestimmten Eingabe die Schleife abbricht?
Das geht plattformübergreifend nicht so einfach, da die Terminals (das schwarze Fenster mit Textcursor und Textein-/ausgabe) sich unterschiedlich verhalten in Windows und unixoiden Systemen. Unter Windows kommst Du mit kbhit() und getch() aus dem Modul msvrct zum Ziel, unter Linux und Consorten gibt es diese Funktionen von Haus aus nicht.
garreth hat geschrieben:Klar wartet der Interpreter nach dem input() auf eine Eingabe.
Genau das soll ja nicht passieren. Die Schleife soll permanent durchlaufen werden und wenn eine spezielle Taste (oder Tastenkombination) gedrückt wird, dann soll sie beendet werden.
/me hat geschrieben:Genau das soll ja nicht passieren. Die Schleife soll permanent durchlaufen werden und wenn eine spezielle Taste (oder Tastenkombination) gedrückt wird, dann soll sie beendet werden.
So jetzt hab ich mir das auch nochmal durchgelesen. Du hast Recht, diese Information habe ich überlesen.