Beenden Sie while-Schleife, indem Sie die ENTER-Taste drücken

8

Ich bin ein Python-Neuling und wurde gebeten, einige Übungen mit while- und for-loops durchzuführen. Ich wurde gebeten, eine Programmschleife zu machen, bis der Exit vom Benutzer angefordert wird und nur <Return> trifft. Bisher habe ich:

%Vor%

Ich habe versucht: (wie in der Übung angewiesen)

%Vor%

und auch

%Vor%

Dies führt jedoch nur zu ungültiger Syntax. Könnten Sie mir bitte sagen, wie Sie dies auf die einfachste Art und Weise tun können? Danke

    
Candace 31.08.2011, 10:07
quelle

14 Antworten

13

Ich bin auf diese Seite gestoßen, während ich (kein Wortspiel) nach etwas anderem gesucht habe. Hier ist, was ich benutze:

%Vor%     
ptay 25.07.2013 15:39
quelle
10

Genau das, was Sie wollen;)

Ссылка

%Vor%     
user3394391 19.03.2014 22:19
quelle
4

Ich nehme an, Sie suchen nach einem Code, der eine Schleife ausführt, bis eine Taste von der Tastatur aus gedrückt wird. Natürlich sollte das Programm nicht immer auf den Benutzer warten, um es einzugeben.

  1. Wenn Sie raw_input() in Python 2.7 oder input() in Python 3.0 verwenden, wartet das Programm darauf, dass der Benutzer eine Taste drückt.
  2. Wenn das Programm nicht darauf warten soll, dass der Benutzer eine Taste drückt, aber den Code trotzdem ausführen möchte, müssen Sie etwas komplexere Dinge tun, bei denen Sie kbhit() function in msvcrt Modul.

Tatsächlich gibt es ein Rezept in ActiveState, wo sie dieses Problem behoben haben. Bitte folgen Sie diesem Link

Ich denke, die folgenden Links würden Ihnen auch helfen, viel besser zu verstehen.

  1. pythonübergreifende Plattform, die auf Tastendrücke wartet

  2. Wie? Ich bekomme einen einzigen Tastendruck nach dem anderen

  3. Nützliche Routinen aus der MS VC ++ Laufzeit

Ich hoffe, das hilft Ihnen, Ihre Arbeit zu erledigen.

    
Surya 30.01.2012 14:29
quelle
2

Verwenden Sie eine print-Anweisung, um zu sehen, was raw_input zurückgibt, wenn Sie enter drücken. Dann ändere deinen Test, um ihn zu vergleichen.

    
Tom Zych 31.08.2011 10:12
quelle
0

Sie müssen herausfinden, wie die Variable Benutzer aussehen würde, wenn Sie einfach die Eingabetaste drücken. Ich werde Ihnen nicht die volle Antwort geben, aber ein Tipp: Feuern Sie einen Dolmetscher und probieren Sie es aus. Es ist nicht so schwer;) Beachten Sie, dass print sep standardmäßig '\ n' ist (war das zu viel: o)

    
naeg 31.08.2011 10:13
quelle
0
%Vor%     
hymloth 31.08.2011 10:16
quelle
0

eine sehr einfache Lösung wäre, und ich sehe, Sie haben gesagt, dass Sie möchte die einfachste mögliche Lösung sehen. Eine Aufforderung an den Benutzer, nach dem Anhalten einer Schleife usw. fortzufahren.

%Vor%     
crackedshiva 05.03.2015 21:49
quelle
0
%Vor%     
MIGHTY BOMBER 30.07.2015 21:18
quelle
0

Hier ist die beste und einfachste Antwort. Verwenden Sie versuchen und außer Anrufe.

%Vor%     
Oybek 01.05.2016 06:58
quelle
0

Du bist fast da. Der einfachste Weg, dies zu erreichen, wäre die Suche nach einer leeren Variablen, die Sie erhalten, wenn Sie bei einer Eingabeaufforderung die Eingabetaste drücken. Mein Code unten ist 3.5

%Vor%     
DaNNuN 27.11.2016 19:09
quelle
0

Folgendes funktioniert von mir:

%Vor%     
Anonymous 09.11.2017 01:56
quelle
0

Dies funktioniert für Python 3.5 mit parallelem Threading. Sie könnten dies leicht anpassen, um nur auf einen bestimmten Tastendruck reagieren zu können.

%Vor%     
gtcoder 28.11.2017 20:40
quelle
-1

Hier ist eine Lösung (ähnlich dem Original), die funktioniert:

%Vor%

Beachten Sie, dass der Code in der ursprünglichen Frage mehrere Probleme hat:

  1. Das if / else befindet sich außerhalb der while-Schleife, daher wird die Schleife für immer ausgeführt.
  2. Dem else fehlt ein Doppelpunkt.
  3. In der else-Klausel gibt es ein doppeltes gleich statt gleich. Dies führt keine Zuweisung durch, es ist ein nutzloser Vergleichsausdruck.
  4. Die laufende Variable wird nicht benötigt, da die if -Klausel ein break .
  5. ausführt
bstpierre 26.09.2012 21:01
quelle
-2

Wenn Sie möchten, dass Ihr Benutzer die Eingabetaste drückt, gibt die Funktion raw_input () "" zurück, also vergleichen Sie den Benutzer mit "":

%Vor%     
Serban Razvan 31.08.2011 10:15
quelle

Tags und Links