Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich das Einfügen einer neuen Zeile in Eingabefunktionen unterdrücken?

Wie kann ich das Einfügen einer neuen Zeile in Eingabefunktionen unterdrücken?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 10:04:02301Durchsuche

How Can I Suppress the Newline Insertion in Input Functions?

Überwindung der Newline-Einfügung in Eingabefunktionen

Herausforderung:Unterdrückung der Newline-Einfügung, die automatisch nach Eingabefunktionen hinzugefügt wird (z. B. raw_input oder input).

Ziel:Ändern von raw_input (entspricht der Eingabe in Python 3.x), um die Erstellung einer neuen Zeile nach Benutzereingaben zu verhindern.

Lösung:

Obwohl es nicht möglich ist, das Einfügen von Zeilenumbrüchen in raw_input vollständig zu eliminieren, gibt es eine clevere Problemumgehung. Durch die Verwendung von Cursorbewegungsbefehlen können wir den Cursor im Wesentlichen in die gleiche Zeile wie die Eingabeaufforderung „zurückspulen“.

Um dies zu erreichen, können wir Folgendes verwenden:

print('3[{}C3[1A'.format(len(x) + y))

wobei:

  • x ist die Länge der Benutzereingabe.
  • y ist die Länge der raw_input-Eingabeaufforderung.

Erklärung:

Die Sequenz 33[{}C bewirkt, dass sich der Cursor um eine bestimmte Anzahl von Leerzeichen nach rechts bewegt ({} steht für einen ganzzahligen Wert). In diesem Fall verschieben wir es an das Ende der Benutzereingabe und löschen es so.

Die Sequenz 33[1A bewegt den Cursor eine Zeile nach oben und bringt ihn an die Position der Eingabeaufforderung zurück.

Hinweis: Diese Methode funktioniert möglicherweise nicht auf allen Terminals. Auf kompatiblen Terminals (wie Kubuntu 14.04) bietet es jedoch eine praktische Lösung, um das unerwünschte Einfügen von Zeilenumbrüchen nach raw_input oder input zu unterdrücken.

Das obige ist der detaillierte Inhalt vonWie kann ich das Einfügen einer neuen Zeile in Eingabefunktionen unterdrücken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn