Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich das Einfügen neuer Zeilen nach der „Eingabe“-Funktion von Python verhindern?

Wie kann ich das Einfügen neuer Zeilen nach der „Eingabe“-Funktion von Python verhindern?

DDD
DDDOriginal
2024-11-01 22:28:29371Durchsuche

How Can I Prevent Newline Insertion After Python's `input` Function?

Einschränken des Einfügens neuer Zeilen in die Eingabefunktion

In Python ist das Standardverhalten der Eingabefunktion (Python 2) und der Funktion raw_input (Python 3 ) besteht darin, nach der Benutzereingabe eine neue Zeile hinzuzufügen. Obwohl dies oft wünschenswert ist, kann es in bestimmten Situationen gerechtfertigt sein, diesen Zeilenumbruch zu unterdrücken.

Das Problem:

Wie im Codeausschnitt gezeigt, folgten beim Drucken von Textaufforderungen getrennte Druckanweisungen durch eine Eingabefunktion kann dazu führen, dass ein unerwünschter Zeilenumbruch eingeführt wird.

Die Lösung:

Obwohl es unmöglich ist, zu verhindern, dass raw_input insgesamt einen Zeilenumbruch einfügt, ist dies effektiv möglich Kehren Sie mit einer Kombination von ANSI-Escape-Codes zur vorherigen Zeile zurück.

<code class="python">import sys
print('3[{}C3[1A'.format(len(x) + y))  # noqa</code>

In diesem Code:

  • x ist die Länge der Benutzereingabe.
  • y ist die Länge der Eingabeaufforderungszeichenfolge raw_input().

Die Escape-Code-Kombination:

  • ' 33[4C' bewegt den Cursor 4 Leerzeichen nach rechts.
  • ' 33[1A' bewegt den Cursor um eine Zeile nach oben.

Durch die Kombination dieser Elemente kann der Cursor wieder am Ende der vorherigen Zeile platziert werden, wodurch die durch eingeführte neue Zeile effektiv entfernt wird Eingabe.

Hinweis:

  • Diese Methode funktioniert möglicherweise nicht in allen Terminals.
  • Wenn Sie eine Zeile nach oben verschieben, werden alle vorhandenen Zeichen gelöscht diesem Ort.

Das obige ist der detaillierte Inhalt vonWie kann ich das Einfügen neuer Zeilen nach der „Eingabe“-Funktion von Python verhindern?. 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