So erhalten Sie eine mehrzeilige Eingabe vom Benutzer [duplizieren]

9

Ich möchte ein Programm schreiben, das mehrere Zeilen erhält und Zeile für Zeile damit arbeitet. Warum gibt es in Python 3 keine Funktion wie raw_input ?

input erlaubt dem Benutzer nicht, Zeilen durch Zeilenumbrüche zu trennen ( Enter ), es druckt nur die erste Zeile zurück.

Kann es in einer Variablen gespeichert oder sogar in eine Liste eingelesen werden?

    
MaciejPL 14.05.2015, 13:49
quelle

5 Antworten

13

In Python 3.x wurde die raw_input() von Python 2.x durch input() function ersetzt. In beiden Fällen können Sie jedoch keine mehrzeiligen Strings eingeben. Zu diesem Zweck müssten Sie vom Benutzer Zeile für Zeile Eingaben machen und dann .join() sie mit \n , oder Sie können auch verschiedene Zeilen verwenden und sie verketten + -Operator getrennt durch \n

Um mehrzeilige Eingaben vom Benutzer zu erhalten, können Sie wie folgt vorgehen:

%Vor%

Oder

%Vor%     
ZdaR 14.05.2015, 13:51
quelle
13

raw_input kann den EOF korrekt behandeln, also können wir eine Schleife schreiben, bis wir ein EOF (Ctrl-D) vom Benutzer erhalten haben:

Python 3

%Vor%

Python 2

%Vor%     
xiaket 06.07.2016 11:47
quelle
2

input(prompt) entspricht im Prinzip

%Vor%

Sie können direkt von sys.stdin lesen, wenn Sie möchten.

%Vor%

Die ersten beiden erfordern, dass die Eingabe irgendwie beendet wird, entweder durch Erreichen des Dateiendes oder durch Eingabe von Control-D (oder Control-Z in Windows), um das Ende zu signalisieren. Der letzte wird nach dem Lesen von fünf Zeilen zurückkommen, entweder von einer Datei oder vom Terminal / der Tastatur.

    
chepner 14.05.2015 14:45
quelle
0

Verwenden Sie die integrierte Funktion input() , um eine Eingabezeile vom Benutzer abzurufen.

Sie können die Hilfe hier lesen.

Sie können den folgenden Code verwenden, um mehrere Zeilen gleichzeitig zu erhalten (mit einem leeren):

%Vor%     
maggick 14.05.2015 13:52
quelle
0
%Vor%     
mohankumar.A 05.07.2016 05:10
quelle

Tags und Links