Wie verhindert man das Einfügen von Zeilenumbrüchen in Pythons Eingabefunktionen?

Susan Sarandon
Freigeben: 2024-10-26 15:50:30
Original
858 Leute haben es durchsucht

How to Prevent Newline Insertion in Python's Input Functions?

So vermeiden Sie das Einfügen neuer Zeilen in Eingabefunktionen

Bei der Verwendung der Eingabefunktion in Python ist es oft wünschenswert, zu verhindern, dass sie automatisch hinzugefügt wird eine neue Zeile nach der Eingabe des Benutzers. Dies ermöglicht in bestimmten Szenarien einen reibungsloseren Ablauf.

Um dies zu erreichen, sind viele Python-Benutzer mit der Methode vertraut, das Newline-Zeichen in Druckanweisungen mithilfe eines abschließenden Kommas zu unterdrücken. Die gleiche Technik gilt jedoch nicht für den Umgang mit Eingabefunktionen wie raw_input in Python 2.x oder input in Python 3.x.

Das Problem verstehen

Bei Verwendung von raw_input (oder input) wird nach der Benutzereingabe konsistent ein neues Zeilenzeichen (dargestellt als „n“) angehängt. Dies kann in Situationen problematisch sein, in denen die Eingabeaufforderung in derselben Zeile wie die Eingabe folgen muss, wie im folgenden Beispiel:

print "Hello, "
name = raw_input()
print ", how do you do?"
Nach dem Login kopieren

Ergebnis:

Hello, Tomas
, how do you do?
Nach dem Login kopieren

Gewünschtes Ergebnis:

Hello, Tomas, how do you do?
Nach dem Login kopieren

Die Einschränkung überwinden

Methode 1: Einen benutzerdefinierten Ansatz verwenden

Wie von Ferdinand Beyer erwähnt, ist es grundsätzlich nicht möglich, das Newline-Zeichen direkt aus raw_input oder input zu entfernen. Es gibt jedoch eine Problemumgehung, die einen benutzerdefinierten Ansatz beinhaltet.

Durch die Nutzung von Terminal-Steuersequenzen ' 33[{}C 33[1A'.format(len(x) y), wobei x die Länge des Benutzers ist input und y die Länge des raw_input-Strings ist, ist es möglich, den Cursor zurück in die Zeile zu bewegen, bevor die Eingabe eingegeben wurde.

Methode 2: Alternativen zu Eingabefunktionen

Alternativ gibt es andere Methoden, um Benutzereingaben zu sammeln, ohne dass das Newline-Problem auftritt. Eine solche Methode ist die Verwendung des getpass-Moduls:

import getpass

name = getpass.getpass("Hello, ")
print ", how do you do?"
Nach dem Login kopieren

Dieser Ansatz zeigt die Eingabeaufforderung ohne abschließende neue Zeile an und gibt die Eingabe direkt zurück, wodurch ein zusätzlicher Zeilenumbruch vermieden wird. Es deaktiviert jedoch auch das Echo der Eingabe, was möglicherweise nicht für alle Situationen geeignet ist.

Zusammenfassend lässt sich sagen, dass es zwar nicht möglich ist, zu verhindern, dass raw_input oder input eine neue Zeile anfügt, aber einen benutzerdefinierten Ansatz mit Terminal-Steuersequenzen oder verwendet Die Erforschung alternativer Eingabemethoden wie getpass kann eine Lösung bieten, die auf spezifische Anforderungen abgestimmt ist.

Das obige ist der detaillierte Inhalt vonWie verhindert man das Einfügen von Zeilenumbrüchen in Pythons Eingabefunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!