logo

Python String format()-Methode

Derformat()>Die Methode ist ein leistungsstarkes Tool, mit dem Entwickler formatierte Zeichenfolgen erstellen können, indem sie Variablen und Werte in Platzhalter innerhalb einer Vorlagenzeichenfolge einbetten. Diese Methode bietet eine flexible und vielseitige Möglichkeit, Textausgaben für eine Vielzahl von Anwendungen zu erstellen. Python string format()-Funktion wurde eingeführt, um komplexe String-Formatierungen effizienter zu handhaben. Manchmal möchten wir in diesem Fall verallgemeinerte Druckanweisungen machen, anstatt jedes Mal, wenn wir das Konzept der Formatierung verwenden, Druckanweisungen zu schreiben.

Python String Format()-Syntax

Syntax: { }.format(Wert)



Parameter:

  • Wert : Kann eine Ganzzahl, eine numerische Gleitkommakonstante, eine Zeichenfolge, Zeichen oder sogar Variablen sein.

Rückgabetyp: Gibt eine formatierte Zeichenfolge mit dem als Parameter übergebenen Wert an der Platzhalterposition zurück.

String Format() im Python-Beispiel

Eine einfache Demonstration der Python String format()-Methode in Python.



Python3






name>=> 'Ram'> age>=> 22> message>=> 'My name>is> {>0>}>and> I am {>1>} years> >old. {>1>}>is> my favorite> >number.'.>format>(name, age)> print>(message)>

>

>

Ausgabe

My name is Ram and I am 22 years old. 22 is my favorite number.>

Verwenden der .Format()-Methode

Diese Methode der integrierten String-Klasse bietet Funktionalität für komplexe Variablenersetzungen und Wertformatierungen. Diese neue Formatierungstechnik gilt als eleganter. Die allgemeine Syntax der format()-Methode lautet string.format(var1, var2,…). Hier werden wir versuchen zu verstehen, wie man eine Zeichenfolge formatiert, die geschweifte Klammern enthält Python .

Python3




txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))>

>

>

Ausgabe

I have 4.00 Rupees!>

Verwenden eines einzelnen Formatierers

In diesem Beispiel verwenden wir die String-Klammer-Notation Programm zur Demonstration der str. format()-Methode. Formatierer funktionieren, indem sie ein oder mehrere Ersatzfelder und Platzhalter einfügen, die durch ein Paar geschweifte Klammern definiert werden { } in einen String umwandeln und den aufrufen str.format() .

Python3




# using format option in a simple string> print>(>'{}, A computer science portal for geeks.'> >.>format>(>'techcodeview.com'>))> # using format option for a> # value stored in a variable> str> => 'This article is written in {}'> print>(>str>.>format>(>'Python'>))> # formatting a string using a numeric constant> print>(>'Hello, I am {} years old !'>.>format>(>18>))>

>

Java int als String

>

Ausgabe

techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>

Stringformat() mit mehreren Platzhaltern

Beim Formatieren können mehrere geschweifte Klammerpaare verwendet werden Zeichenfolge in Python . Nehmen wir an, im Satz ist eine weitere Variablenersetzung erforderlich. Dies kann durch Hinzufügen eines zweiten Paares geschweifter Klammern und Übergabe eines zweiten Werts an die Methode erfolgen. Python ersetzt die Platzhalter durch Werte in Befehl.

Syntax : { } { } .format(Wert1, Wert2)

Parameter: (Wert1, Wert2): Kann Ganzzahlen, numerische Gleitkommakonstanten, Zeichenfolgen, Zeichen und sogar Variablen sein. Der einzige Unterschied besteht darin, dass die Anzahl der als Parameter in der Methode format() übergebenen Werte der Anzahl der in der Zeichenfolge erstellten Platzhalter entsprechen muss.

Fehler und Ausnahmen:

Indexfehler: Tritt auf, wenn die Zeichenfolge einen zusätzlichen Platzhalter hat und wir in der Methode format() keinen Wert dafür übergeben haben. Python weist den Platzhaltern normalerweise den Standardindex in der Reihenfolge zu 0, 1, 2, 3…. um auf die als Parameter übergebenen Werte zuzugreifen. Wenn es also auf einen Platzhalter stößt, in dessen Index kein Wert als Parameter übergeben wird, wird IndexError ausgegeben.

Python-Programm, das mehrere Platzhalter verwendet, um die Methode str.format() zu demonstrieren.

Python3




# Multiple placeholders in format() function> my_string>=> '{}, is a {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> # different datatypes can be used in formatting> print>(>'Hi ! My name is {} and I am {} years old'> >.>format>(>'User'>,>19>))> # The values passed as parameters> # are replaced in order of their entry> print>(>'This is {} {} {} {}'> >.>format>(>'one'>,>'two'>,>'three'>,>'four'>))>

>

>

Ausgabe

techcodeview.com, is a computer science portal for geeks Hi! My name is User and I am 19 years old This is one two three four>

Stringformat() IndexError

Python-Programm, das einen Indexfehler zeigt. Die Anzahl der Platzhalter beträgt vier, es werden jedoch nur drei Werte übergeben.

Python3




# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))>

>

>

Ausgabe

IndexError: tuple index out of range>

Formatieren von Zeichenfolgen mithilfe von Escape-Sequenzen

Sie können zwei oder mehr speziell gekennzeichnete Zeichen innerhalb einer Zeichenfolge verwenden, um eine Zeichenfolge zu formatieren oder einen Befehl auszuführen. Diese Zeichen werden Escape-Sequenzen genannt. Ein Escape-Sequenz in Python beginnt mit einem Backslash (). ist beispielsweise eine Escape-Sequenz, in der die allgemeine Bedeutung des Buchstabens n buchstäblich maskiert wird und eine alternative Bedeutung erhält – eine neue Zeile.

Fluchtabfolge Beschreibung Beispiel
N Bricht die Zeichenfolge in eine neue Zeile um print(‘Ich habe diesen Reim entworfen, um ihn rechtzeitig zu erklären Alles was ich weiß‘)
T Fügt eine horizontale Registerkarte hinzu print('Zeit ist eine wertvolle Sache')
Gibt einen Backslash aus print(‘Beobachten Sie, wie es vorbeifliegt, während das Pendel schwingt’)
Druckt ein einzelnes Anführungszeichen print('Es spielt keine Rolle, wie sehr du es versuchst.')
Gibt ein doppeltes Anführungszeichen aus print(‘Es ist sounwirklich‘)
A macht einen Klang wie eine Glocke print(‘a’)

Formatierer mit Positions- und Schlüsselwortargumenten

Bei Platzhaltern { } leer sind, ersetzt Python die über str.format() übergebenen Werte der Reihe nach. Die Werte, die innerhalb der str.format()-Methode vorhanden sind, sind im Wesentlichen Tupel Datentypen und jeder einzelne im Tupel enthaltene Wert kann über seine Indexnummer aufgerufen werden, die mit der Indexnummer 0 beginnt. Diese Indexnummern können in die geschweiften Klammern übergeben werden, die als Platzhalter in der Originalzeichenfolge dienen.

Syntax : {0} {1}.format(positional_argument, keyword_argument)

Parameter: (positional_argument, keyword_argument)

  • Positionsargument Dies können Ganzzahlen, numerische Gleitkommakonstanten, Zeichenfolgen, Zeichen und sogar Variablen sein.
  • Schlüsselwortargument ist im Wesentlichen eine Variable, die einen Wert speichert, der als Parameter übergeben wird.

Beispiel: Demonstration der Verwendung von Formatierern mit Positionsschlüsselargumenten.

Python3




# Positional arguments> # are placed in order> print>(>'{0} love {1}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> # Reverse the index numbers with the> # parameters of the placeholders> print>(>'{1} love {0}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> print>(>'Every {} should know the use of {} {} programming and {}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,> >'Operating Systems'>))> # Use the index numbers of the> # values to change the order that> # they appear in the string> print>(>'Every {3} should know the use of {2} {1} programming and {0}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,>'Operating Systems'>))> # Keyword arguments are called> # by their keyword name> print>(>'{gfg} is a {0} science portal for {1}'> >.>format>(>'computer'>,>'geeks'>, gfg>=>'techcodeview.com'>))>

>

>

Ausgabe

techcodeview.com love Geeks!!  Geeks love techcodeview.com!!  Every programmer should know the use of Open Source programming and Operating Systems  Every Operating Systems should know the use of Source Open programming and programmer  techcodeview.com is a computer science portal for geeks>

Typangabe in Python

Weitere Parameter können in die geschweiften Klammern unserer Syntax eingefügt werden. Verwenden Sie die Formatcode-Syntax {Feldname: Konvertierung} , Wo Feldname Gibt die Indexnummer des Arguments für die Methode str.format() an, und die Konvertierung bezieht sich auf den Konvertierungscode des Datentyps.

Mit %s – String-Konvertierung über str() vor der Formatierung

Python3




print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))>

>

>

Ausgabe

geeksforgeeks Interngeeks  Inter>

Mit %c – Charakter vor der Formatierung

Python3




Wo finde ich meine Browsereinstellungen?

type> => 'bug'> result>=> 'troubling'> print>('I wondered why the program was>%>s me. Then> it dawned on me it was a>%>s .'>%> >(result,>type>))>

>

>

Ausgabe

I wondered why the program was troubling me. Thenit dawned on me it was a bug .>

Mit %i vorzeichenbehaftete dezimale Ganzzahl und %D vorzeichenbehaftete Dezimalzahl (Basis 10) vor der Formatierung

Python3




match>=> 12000> site>=> 'Amazon'> print>('>%>s>is> so useful. I tried to look> up mobile>and> they had a nice one that cost>%>d rupees.'>%> (site, match))>

>

>

Ausgabe

Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>

Eine weitere nützliche Typangabe

  • %In vorzeichenlose dezimale Ganzzahl
  • Oktalzahl
  • F – Gleitkomma-Anzeige
  • B - Binärzahl
  • Ö – Oktalzahl
  • %X – Hexadezimal mit Kleinbuchstaben nach 9
  • %X – Hexadezimal mit Großbuchstaben nach 9
  • Es ist – Exponentenschreibweise

Sie können auch angeben Formatierungssymbole . Die einzige Änderung besteht in der Verwendung eines Doppelpunkts (:) anstelle von %.

Verwenden Sie beispielsweise anstelle von %s {:s} und anstelle von %d (:d}

Syntax : String {field_name:conversion} Beispiel.format(Wert)
Fehler und Ausnahmen:
ValueError: Bei dieser Methode tritt bei der Typkonvertierung ein Fehler auf.

Konvertieren Sie dezimale Ganzzahlen zur Basis 10 in numerische Gleitkommakonstanten

Python3




print>(>'This site is {0:f}% securely {1}!!'>.> >format>(>100>,>'encrypted'>))> # To limit the precision> print>(>'My average of this {0} was {1:.2f}%'> >.>format>(>'semester'>,>78.234876>))> # For no decimal places> print>(>'My average of this {0} was {1:.0f}%'> >.>format>(>'semester'>,>78.234876>))> # Convert an integer to its binary or> # with other different converted bases.> print>(>'The {0} of 100 is {1:b}'> >.>format>(>'binary'>,>100>))> print>(>'The {0} of 100 is {1:o}'> >.>format>(>'octal'>,>100>))>

>

>

Ausgabe

This site is 100.000000% securely encrypted!! My average of this semester was 78.23% My average of this semester was 78% The binary of 100 is 1100100 The octal of 100 is 144>

Geben Sie Fehler bei der Angabe ein

Demonstrieren Sie ValueError beim Erzwingen Typkonvertierungen

Python3




# When explicitly converted floating-point> # values to decimal with base-10 by 'd'> # type conversion we encounter Value-Error.> print>(>'The temperature today is {0:d} degrees outside !'> >.>format>(>35.567>))> # Instead write this to avoid value-errors> ''' print('The temperature today is {0:.0f} degrees outside !'> >.format(35.567))'''>

>

>

Ausgabe

ValueError: Unknown format code 'd' for object of type 'float'>

Ersetzungen auffüllen oder Leerzeichen erzeugen

Demonstration des Abstands, wenn Zeichenfolgen als Parameter übergeben werden

Standardmäßig werden Zeichenfolgen innerhalb des Felds linksbündig und Zahlen rechtsbündig ausgerichtet. Wir können dies ändern, indem wir direkt nach dem Doppelpunkt einen Ausrichtungscode einfügen.

  <   : left-align text in the field   ^   : center text in the field>: Text im Feld rechtsbündig>

Python3




# To demonstrate spacing when> # strings are passed as parameters> print>(>'{0:4}, is the computer science portal for {1:8}!'> >.>format>(>'techcodeview.com'>,>'geeks'>))> # To demonstrate spacing when numeric> # constants are passed as parameters.> print>(>'It is {0:5} degrees outside !'> >.>format>(>40>))> # To demonstrate both string and numeric> # constants passed as parameters> print>(>'{0:4} was founded in {1:16}!'> >.>format>(>'techcodeview.com'>,>2009>))> # To demonstrate aligning of spaces> print>(>'{0:^16} was founded in {1:<4}!'> >.>format>(>'techcodeview.com'>,>2009>))> print>(>'{:*^20s}'>.>format>(>'Geeks'>))>

>

>

Ausgabe :

techcodeview.com, is the computer science portal for geeks ! It is 40 degrees outside! techcodeview.com was founded in 2009!  techcodeview.com was founded in 2009 ! *******Geeks********>

Anwendungen

Formatierer werden im Allgemeinen zum Organisieren von Daten verwendet. Formatierer kommen am besten zur Geltung, wenn sie zum visuellen Organisieren großer Datenmengen eingesetzt werden. Wenn wir Benutzern Datenbanken zeigen, kann die Verwendung von Formatierern zum Erhöhen der Feldgröße und Ändern der Ausrichtung die Lesbarkeit der Ausgabe verbessern.

Beispiel: Um die Organisation großer Datenmengen mit format() zu demonstrieren

Python3




# which prints out i, i ^ 2, i ^ 3,> # i ^ 4 in the given range> # Function prints out values> # in an unorganized manner> def> unorganized(a, b):> >for> i>in> range>(a, b):> >print>(i, i>*>*>2>, i>*>*>3>, i>*>*>4>)> # Function prints the organized set of values> def> organized(a, b):> >for> i>in> range>(a, b):> ># Using formatters to give 6> ># spaces to each set of values> >print>(>'{:6d} {:6d} {:6d} {:6d}'> >.>format>(i, i>*>*> 2>, i>*>*> 3>, i>*>*> 4>))> # Driver Code> n1>=> int>(>input>(>'Enter lower range :- '>))> n2>=> int>(>input>(>'Enter upper range :- '>))> print>(>'------Before Using Formatters-------'>)> # Calling function without formatters> unorganized(n1, n2)> print>()> print>(>'-------After Using Formatters---------'>)> print>()> # Calling function that contains> # formatters to organize the data> organized(n1, n2)>

>

>

Ausgabe :

Enter lower range :- 3 Enter upper range :- 10 ------Before Using Formatters------- 3 9 27 81 4 16 64 256 5 25 125 625 6 36 216 1296 7 49 343 2401 8 64 512 4096 9 81 729 6561 -------After Using Formatters---------  3 9 27 81  4 16 64 256  5 25 125 625  6 36 216 1296  7 49 343 2401  8 64 512 4096  9 81 729 6561>

Verwenden eines Wörterbuchs zur Zeichenfolgenformatierung

Verwenden eines Wörterbuchs zum Entpacken von Werten in die Platzhalter in der Zeichenfolge, die formatiert werden muss. Wir verwenden grundsätzlich ** um die Werte auszupacken. Diese Methode kann beim Ersetzen von Zeichenfolgen beim Vorbereiten einer SQL-Abfrage nützlich sein.

Python3




introduction>=> 'My name is {first_name} {middle_name} {last_name} AKA the {aka}.'> full_name>=> {> >'first_name'>:>'Tony'>,> >'middle_name'>:>'Howard'>,> >'last_name'>:>'Stark'>,> >'aka'>:>'Iron Man'>,> }> # Notice the use of '**' operator to unpack the values.> print>(introduction.>format>(>*>*>full_name))>

>

>

Ausgabe:

My name is Tony Howard Stark AKA the Iron Man.>

Python-Format() mit Liste

Bei einer gegebenen Liste von Gleitkommawerten besteht die Aufgabe darin, alle Gleitkommawerte auf zwei Dezimalstellen zu kürzen. Sehen wir uns die verschiedenen Methoden zur Ausführung der Aufgabe an.

Python3




# Python code to truncate float> # values to 2 decimal digits.> > # List initialization> Input> => [>100.7689454>,>17.232999>,>60.98867>,>300.83748789>]> > # Using format> Output>=> [>'{:.2f}'>.>format>(elem)>for> elem>in> Input>]> > # Print output> print>(Output)>

>

>

Ausgabe

['100.77', '17.23', '60.99', '300.84']>