Rechtsbündiger String in Python

Aditya Raj 10 Oktober 2023
  1. Verwenden Sie Formatbezeichner, um Zeichenfolgen in Python rechtsbündig auszurichten
  2. Verwenden Sie f-strings, um Strings in Python rechts auszurichten
  3. Verwenden Sie die format()-Methode, um Strings in Python rechtsbündig auszurichten
  4. Verwenden Sie die Methode rjust(), um Strings in Python rechtsbündig auszurichten
  5. Fazit
Rechtsbündiger String in Python

Manchmal müssen wir beim Drucken von Tabellen in Python Werte rechtfertigen, um gut auszusehen. In diesem Artikel besprechen wir verschiedene Möglichkeiten, eine Zeichenfolge in Python rechtsbündig auszurichten.

Verwenden Sie Formatbezeichner, um Zeichenfolgen in Python rechtsbündig auszurichten

Formatbezeichner werden, wie der Name schon sagt, zum Formatieren von Werten in einer Zeichenfolge verwendet. Das Folgende ist die Syntax für die Verwendung von Formatbezeichnern in Python.

myStr = "%s" % (string_variable)
  • Die string_variable ist der Name der Variable, die als String ausgegeben werden soll.
  • %s wird als Formatbezeichner und Platzhalter für eine String-Variable verwendet. Für ganze Zahlen und Fließkommazahlen können Sie %d und %f als Formatbezeichner verwenden.

Bei der Ausführung obiger Anweisung wird der Wert in string_variable an der Stelle des Formatbezeichners im String zugewiesen. Abschließend wird der Ausgabestring myStr zugewiesen.

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)

Ausgabe:

Delftstack Aditya Jinku

Im obigen Beispiel haben wir drei String-Variablen definiert. Danach haben wir die Eingaben mithilfe von Formatbezeichnern in eine einzelne Zeichenfolge konvertiert.

Angenommen, es gibt in diesem nächsten Beispiel weniger Variablen als die Anzahl der Formatbezeichner in der Zeichenfolge. In diesem Fall läuft das Programm auf eine Ausnahme TypeError, die besagt, dass dem Formatstring nicht genügend Argumente gegeben wurden.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2)
print(myStr)

Ausgabe:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "%s %s %s" % (string_variable1, string_variable2)
TypeError: not enough arguments for format string

Der obige Code enthält drei Formatbezeichner. Allerdings haben wir dem %-Operator nur zwei String-Variablen als Eingabeargumente übergeben.

Aus diesem Grund läuft das Programm in eine TypeError-Ausnahme. Wenn der Format-String mehr Variablen enthält als die Anzahl der Formatbezeichner, läuft das Programm in ähnlicher Weise auf eine TypeError-Ausnahme, die besagt, dass alle Argumente des Format-Strings während der String-Formatierung nicht konvertiert wurden.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)

Ausgabe:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
TypeError: not all arguments converted during string formatting

Im obigen Beispiel gibt es nur zwei Formatbezeichner, aber wir haben dem %-Operator drei String-Variablen als Eingabeargumente gegeben. Aus diesem Grund läuft das Programm während der Ausführung in die Ausnahme TypeError.

Um die Ausgabezeichenfolgen rechtsbündig auszurichten, verwenden wir die Länge der Ausgabezeichenfolge mit dem Formatbezeichner, wie im folgenden Codeausschnitt gezeigt.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%10s" % (string_variable1)
myStr2 = "%10s" % (string_variable2)
myStr3 = "%10s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Wir haben die Länge des Ausgabestrings im obigen Beispiel mit 10 angegeben. Nach der Ausführung haben die Ausgabestrings die Länge 10.

Ausgabe:

Delftstack
    Aditya
     Jinku

Beachten Sie in der Ausgabe, dass die Zeichenfolgen rechtsbündig sind. Wenn die Länge der string_variable kleiner ist als die Länge des im Formatbezeichner angegebenen Ausgabestrings, werden Leerzeichen in den String aufgefüllt, um den Eingabestring rechtsbündig auszurichten.

Wenn die Länge der string_variable größer ist als die Länge des im Formatbezeichner angegebenen Ausgabestrings, wird der Eingabestring unverändert ausgegeben und unverändert ausgegeben.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%5s" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
Aditya
Jinku

Wir haben die Länge der Ausgabezeichenfolge auf 5 festgelegt. Alle Strings, die wir als Eingabe übergeben haben, sind jedoch länger als oder gleich 5.

Daher ist die angegebene Länge der Ausgabezeichenfolge kleiner oder gleich der Länge der Eingabezeichenfolgen. Daher findet keine Formatierung statt.

Verwenden Sie f-strings, um Strings in Python rechts auszurichten

Die Verwendung von Formatbezeichnern erfordert, dass wir den Datentyp von Variablen kennen, um sie drucken zu können. Wenn wir die Variable nicht mit dem richtigen Datentyp übergeben, der im Formatbezeichner angegeben ist, läuft das Programm in eine TypeError-Ausnahme.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%d" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr1 = "%d" % (string_variable1)
TypeError: %d format: a number is required, not str

Sie können sehen, dass wir %d als Formatbezeichner verwendet haben. Wir haben jedoch einen String als Eingabe an den Operator % übergeben.

Aus diesem Grund läuft das Programm in eine TypeError-Ausnahme, die besagt, dass es eine Integer-Eingabe und keinen String erwartet. Um diesen Fehler zu vermeiden, können wir f-Strings verwenden, um die Strings rechts auszurichten.

Die Syntax für die Verwendung von f-strings:

myStr = f"{string_variable}"
  • Die string_variable ist die Variable, deren Wert gedruckt werden muss.
  • {} wird als Platzhalter für die string_variable verwendet.
  • Das wörtliche "f" vor dem String zeigt an, dass der String ein f-String ist.

Nach der Ausführung wird der Ausgangsstring myStr zugewiesen.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1}"
myStr2 = f"{string_variable2}"
myStr3 = f"{string_variable3}"
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
Aditya
Jinku

Wir haben im obigen Beispiel drei Variablen erstellt. Danach haben wir drei f-strings erstellt, die jeder Variable entsprechen.

Nach Ausführung der F-Strings werden die Ausgänge den Variablen myStr1, myStr2 und myStr3 zugewiesen. Um die Ausgabezeichenfolge im obigen Code rechts auszurichten, verwenden wir die Länge der Ausgabezeichenfolge im Platzhalter, wie im folgenden Beispiel gezeigt.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>10}"
myStr2 = f"{string_variable2:>10}"
myStr3 = f"{string_variable3:>10}"
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
    Aditya
     Jinku

Wir haben die Syntax variable_name:> output_length im Platzhalter verwendet, um die Strings in der Ausgabe rechtsbündig auszurichten. Wir haben die output_length auf 10 festgelegt.

Wenn die Länge der string_variable kleiner ist als die Länge des im Platzhalter angegebenen Ausgabestrings, werden Leerzeichen in den String aufgefüllt, um den Eingabestring rechtsbündig auszurichten. Wie im folgenden Snippet: Wenn die Länge der string_variable größer ist als die Länge des im Platzhalter angegebenen Ausgabestrings, passiert keine Änderung am Eingabestring und er wird unverändert gedruckt.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>5}"
myStr2 = f"{string_variable2:>5}"
myStr3 = f"{string_variable3:>5}"
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
Aditya
Jinku

Wir haben die Länge des Ausgabestrings auf 5 festgelegt, was kleiner oder gleich der Länge aller Eingabestrings ist. Daher findet keine Formatierung statt.

Verwenden Sie die format()-Methode, um Strings in Python rechtsbündig auszurichten

Anstelle von f-strings können wir auch die Methode format() verwenden, um Strings in Python rechtsbündig auszurichten.

Die Syntax zur Verwendung der Methode format():

myStr = "{}".format(string_variable)
  • string_variable ist der Name der Variablen, die als String ausgegeben werden soll.
  • {} wird als Platzhalter für eine String-Variable verwendet.

Beim Ausführen der Methode format() wird der Wert in string_variable an der Stelle des Platzhalters im String zugewiesen. Abschließend wird der Ausgabestring myStr zugewiesen.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{}".format(string_variable1)
myStr2 = "{}".format(string_variable2)
myStr3 = "{}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
Aditya
Jinku

Im obigen Beispiel haben wir drei Variablen erstellt. Danach haben wir dreimal die Methode format() verwendet, einmal für jede Variable.

Die Ausgänge werden nach Ausführung der Methode format() den Variablen myStr1, myStr2 und myStr3 zugewiesen.

Lassen Sie uns ein Beispiel haben, in dem Sie beliebig viele Platzhalter mit der gleichen Anzahl von Variablen als Eingabeargument für die Methode format() verwenden können.

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1, string_variable2, string_variable3)
print(myStr)

Ausgabe:

Delftstack Aditya Jinku

Wir haben alle drei Variablen als Eingabeargumente an die Methode format() übergeben. Die Ausgabe wird als einzelne Zeichenfolge zurückgegeben.

Werden weniger Variablen an die format()-Methode übergeben als Platzhalter im String vorhanden sind, läuft das Programm wie im folgenden Beispiel in eine IndexError-Ausnahme.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1, string_variable2)
print(myStr)

Ausgabe:

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "{} {} {}".format(string_variable1,string_variable2)
IndexError: Replacement index 2 out of range for positional args tuple

Sehen Sie, dass es drei Platzhalter gibt, aber wir haben nur zwei Strings als Eingabeargumente an die format()-Methode übergeben. Aus diesem Grund läuft das Programm in die Ausnahme IndexError.

Wenn die Anzahl der an die Methode format() übergebenen Variablen größer ist als die Platzhalter in der Zeichenfolge, für die die Methode format() aufgerufen wird, werden die Variablen gleich der Anzahl der Platzhalter in die Zeichenfolge aufgenommen. Die restlichen Variablen werden verworfen.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {}".format(string_variable1, string_variable2, string_variable3)
print(myStr)

Ausgabe:

Delftstack Aditya

Sie können sehen, dass es nur zwei Platzhalter gibt und wir drei Strings als Eingabe an die Methode format() übergeben haben, aber das Programm läuft diesmal nicht auf den IndexError. Nur das letzte Eingabeargument wurde verworfen.

Um den Ausgabestring mit der Methode format() rechtsbündig auszurichten, verwenden wir die Länge des Ausgabestrings im Platzhalter, wie im folgenden Beispiel gezeigt.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>10}".format(string_variable1)
myStr2 = "{:>10}".format(string_variable2)
myStr3 = "{:>10}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
    Aditya
     Jinku

Wenn hier die Länge der string_variable kleiner ist als die Länge des im Platzhalter angegebenen Ausgabestrings, werden Leerzeichen in den String aufgefüllt, um den Eingabestring rechtsbündig auszurichten.

Wenn die Länge der string_variable grösser ist als die Länge des im Platzhalter angegebenen Ausgabestrings, wird der Eingabestring nicht verändert und unverändert ausgegeben.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>5}".format(string_variable1)
myStr2 = "{:>5}".format(string_variable2)
myStr3 = "{:>5}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
Aditya
Jinku

Alle oben diskutierten Ansätze werden verwendet, um Variablen mit jedem Datentyp zu formatieren. Python stellt uns auch Methoden zur Verfügung, die für Strings spezifisch sind.

Wir können die Methode rjust() verwenden, um Strings in Python rechts auszurichten.

Verwenden Sie die Methode rjust(), um Strings in Python rechtsbündig auszurichten

Die Syntax für die Methode rjust():

myStr = string_variable.rjust(output_length)
  • string_variable ist die Variable, deren Wert rechtsbündig ausgerichtet werden muss.
  • Die output_length ist die Länge des Ausgabestrings.

Wenn die Methode rjust() auf der string_variable aufgerufen wird, nimmt sie output_length als Eingabeargument und gibt den rechtsbündigen String zurück, der myStr zugewiesen wird.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(10)
myStr2 = string_variable2.rjust(10)
myStr3 = string_variable3.rjust(10)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
    Aditya
     Jinku

Wenn die Länge von string_variable kleiner als die output_length ist, werden Leerzeichen in den String aufgefüllt, um den Eingabestring rechtsbündig auszurichten.

Wenn in diesem nächsten Beispiel die Länge der string_variable grösser als output_length ist, passiert keine Änderung an der Eingabezeichenfolge und sie wird unverändert gedruckt.

Beispielcode:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(5)
myStr2 = string_variable2.rjust(5)
myStr3 = string_variable3.rjust(5)
print(myStr1)
print(myStr2)
print(myStr3)

Ausgabe:

Delftstack
Aditya
Jinku

Fazit

In diesem Artikel haben wir vier Möglichkeiten besprochen, eine Zeichenfolge in Python rechtsbündig auszurichten. Von all diesen würde ich vorschlagen, dass Sie den Ansatz mit der Methode format() verwenden, da dies bequemer ist.

Außerdem läuft das Programm in diesem Fall nicht auf einen Fehler, wenn die Eingangsvariable Werte anderer Datentypen enthält.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Verwandter Artikel - Python String