logo

Python String Formatering – Hur formaterar man String?

Strängformatering låter dig skapa dynamiska strängar genom att kombinera variabler och värden. I den här artikeln kommer vi att diskutera omkring 5 sätt att formatera en sträng.

Du kommer att lära dig olika metoder för strängformatering med exempel för bättre förståelse. Låt oss titta på dem nu!



Hur man formaterar strängar i Python

Det finns fem olika sätt att utföra strängformatering på Pytonorm

  • Formatering med % Operator.
  • Formatering med format()-strängmetoden.
  • Formatering med strängliterals, kallade f-strängar.
  • Formatering med String Template Class
  • Formatering med center() strängmetoden.

Så vi kommer att se helheten av de ovan nämnda sätten, och vi kommer också att fokusera på vilken strängformateringsstrategi som är bäst.

1. Hur man formaterar sträng med % Operator

Det är den äldsta metoden för strängformatering. Här använder vi modulo % operatör . Modulen % är också känd som strängformateringsoperatorn.



Python-formatsträng med %-operatorn

I uttrycket Den skabbiga, magra herrelösa hunden %s slukade % 'hastigt', ersätts %s platshållaren i strängen med värdet 'hastig'.

Python3

tcp och ip-modell






print>(>'The mangy, scrawny stray dog %s gobbled down'> %>'hurriedly'> +> >'the grain-free, organic dog food.'>)>

>

>

Produktion

The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.>

Injicera flera strängar med modulo-operatorn

Här infogar vi flera strängar med %-operatorn.

Python3




x>=> 'looked'> print>(>'Misha %s and %s around'>%>(>'walked'>,x))>

>

>

Produktion

Misha walked and looked around>

Precisionshantering i Python med %-operator

Flyttal använder formatet %a.bf . Här, a skulle vara det minsta antalet siffror som ska finnas i strängen; dessa kan vara fyllda med blanksteg om hela numret inte har så många siffror.

Nära detta, bf representerar hur många siffror som ska visas efter decimalkomma.

I den här koden innehåller strängen 'Värdet på pi är: %5.4f' en formatspecifikation %5.4f. Formatspecifikationen %5.4f används för att formatera ett flyttal med en minsta bredd på 5 och en precision på 4 decimaler.

Python3




print>(>'The value of pi is: %5.4f'> %>(>3.141592>))>

>

>

Produktion

The value of pi is: 3.1416>

Flera formatkonverteringstyper

I den givna koden konverteras formateringssträngen Python till heltal och flyttal med %d,%f.

Python3




variable>=> 12> string>=> 'Variable as integer>=> %>d > Variable as>float> => %>f'>%>(variable, variable)> print> (string)>

>

>

Produktion

Variable as integer = 12 Variable as float = 12.000000>

Notera: För att veta mer om %-formatering, se Strängformatering i Python med %

2. Hur man formaterar sträng med format()-metoden

Format()-metoden introducerades med Python3 för att hantera komplex strängformatering mer effektivt.

Formaterare fungerar genom att lägga in ett eller flera ersättningsfält och platshållare som definieras av ett par hängslen { } i en sträng och anropa str.format() . Värdet vi vill lägga in i platshållarna och sammanfoga med strängen som skickas som parametrar till formatfunktionen.

Syntax: ‘Sträng här {} och sedan även {}’.format(‘något1′,’något2’)

Formatera String Python med format()-metoden

Den här koden använder {} som platshållare och sedan har vi kallat.format()-metoden på 'lika' med platshållaren.

Python3




print>(>'We all are {}.'>.>format>(>'equal'>))>

>

>

Produktion

We all are equal.>

Indexbaserad infogning

I den här koden används klammerparenteser {} med index inom strängen '{2} {1} {0}' för att indikera positionerna där motsvarande värden kommer att placeras.

Python3

java synkronisera




print>(>'{2} {1} {0}'>.>format>(>'directions'>,> >'the'>,>'Read'>))>

>

>

Produktion

Read the directions>

Infoga objekt genom att tilldela nyckelord

I den här koden används klammerparenteser {} med namngivna platshållare ({a}, {b}, {c}) inom strängen 'a: {a}, b: {b}, c: {c}' för att indikera positionerna där motsvarande namngivna argument kommer att placeras.

Python3




print>(>'a: {a}, b: {b}, c: {c}'>.>format>(a>=> 1>,> >b>=> 'Two'>,> >c>=> 12.3>))>

>

>

Produktion

a: 1, b: Two, c: 12.3>

Återanvänd de infogade objekten

I den här koden används hängslen {} med namngivna platshållare ({p}) inom strängen 'Den första {p} var okej, men {p} {p} var svår för att indikera positionerna där motsvarande namn.' argument p kommer att placeras.

Python3


om annars loop i java



print>(> >'The first {p} was alright, but the {p} {p} was tough.'>.>format>(p>=>'second'>))>

>

>

Produktion

The first second was alright, but the second second was tough.>

Flyt precision med metoden.format()

Syntax: {[index]:[bredd][.precision][typ]}

Typen kan användas med formatkoder:

  • 'd' för heltal
  • 'f' för flyttal
  • 'b' för binära tal
  • 'O' för oktala tal
  • 'x' för oktala hexadecimala tal
  • 's' för sträng
  • 'Det är' för flyttal i ett exponentformat

Exempel:

Båda koderna gör strängformatering. Den första strängen är formaterad med '%' och den andra strängen är formaterad med .format().

Python3




print>(>'The valueof pi is: %1.5f'> %>3.141592>)> print>(>'The valueof pi is: {0:1.5f}'>.>format>(>3.141592>))>

>

>

Produktion

The valueof pi is: 3.14159 The valueof pi is: 3.14159>

Notera: För att veta mer om str.format(), se format() funktion i Python

3. Förstå Python f-sträng

PEP 498 introducerade en ny strängformateringsmekanism känd som Literal String Interpolation eller mer vanligt som F-strängar (på grund av det inledande f-tecknet som föregår strängen literal). Tanken bakom f-String i Python är att göra stränginterpolation enklare.

För att skapa en f-sträng i Python, prefix strängen med bokstaven f. Strängen i sig kan formateras på ungefär samma sätt som du skulle göra med str. formatera() . F-strängar ger ett kortfattat och bekvämt sätt att bädda in Python-uttryck i strängliteraler för formatering.

Strängformatering med F-strängar

I den här koden, f-strängen fMitt namn är {namn}. används för att interpolera värdet på namnvariabeln i strängen.

Python3




name>=> 'Ele'> print>(f>'My name is {name}.'>)>

>

>

Produktion

My name is Ele.>

Denna nya formateringssyntax är mycket kraftfull och enkel. Du kan också infoga godtyckliga Python-uttryck och du kan till och med göra aritmetiska operationer i det.

Aritmetiska operationer med F-strängar

I den här koden, f-strängen f Han sa att hans ålder är {2 * (a + b)}. används för att interpolera resultatet av uttrycket 2 * (a + b) i strängen.

statiskt nyckelord i java

Python3




a>=> 5> b>=> 10> print>(f>'He said his age is {2 * (a + b)}.'>)>

>

>

Produktion

He said his age is 30.>

Vi kan också använda lambda uttryck i f-sträng formatering.

Lambdauttryck med F-strängar

I den här koden definieras en anonym lambdafunktion med lambda x: x*2. Denna lambda-funktion tar ett argument x och returnerar dess dubbla.

Python3




print>(f>'He said his age is {(lambda x: x*2)(3)}'>)>

>

>

Produktion

He said his age is 6>

Flytprecision i f-String-metoden

I den här koden används f-strängsformatering för att interpolera värdet på variabeln num i strängen.

  Syntax  : {value:{width}.{precision}}>

Python3




num>=> 3.14159> print>(f>'The valueof pi is: {num:{1}.{5}}'>)>

>

>

Produktion

The valueof pi is: 3.1416>

Notera: För att veta mer om f-strängar, se f-strängar i Python

4. Python String Mall Class

I String-modulen tillåter Template Class oss att skapa förenklad syntax för utdataspecifikation. Formatet använder platshållarnamn som bildas av $ med giltig Python identifierare (alfanumeriska tecken och understreck). Om du omger platshållaren med klammerparenteser kan den följas av fler alfanumeriska bokstäver utan mellanslag. Genom att skriva $$ skapas en enda escaped $:

Formatera String Python med Template Class

Denna kod importerar Template-klassen från strängmodulen. Klassen Template låter oss skapa en mallsträng med platshållare som kan ersättas med faktiska värden. Här ersätter vi värdena n1 och n2 i stället för n3 och n4 i strängen n.

Python3




from> string>import> Template> n1>=> 'Hello'> n2>=> 'techcodeview.com'> n>=> Template(>'$n3 ! This is $n4.'>)> # and pass the parameters into the> # template string.> print>(n.substitute(n3>=>n1, n4>=>n2))>

>

>

Produktion

Hello ! This is techcodeview.com.>

Notera: För att veta mer om klassen String Template, se String Template Class i Python

5. Hur man formaterar sträng med center()-metoden

Center()-metoden är en inbyggd metod i Pythons str-klass som returnerar en ny sträng som är centrerad inom en sträng med en angiven bredd.

Formatera sträng med metoden center().

Denna kod returnerar en ny sträng vadderad med mellanslag på vänster och höger sida.

Python3


java synkronisera



string>=> 'GeeksForGeeks!'> width>=> 30> centered_string>=> string.center(width)> print>(centered_string)>

>

>

Produktion

 GeeksForGeeks!>

Python Format String: % vs. .format vs. f-string literal

f-strängar är snabbare och bättre än båda %-formatering och str.format() . f-strängsuttryck utvärderas under körning, och vi kan också bädda in uttryck i f-strängar, med en mycket enkel och lätt syntax.

Uttrycken inuti klammerparenteserna utvärderas i runtime och sätts sedan ihop med strängdelen av f-strängen och sedan returneras den sista strängen.

Notera: Använd mallsträng om strängen är en sträng som tillhandahålls av användaren. Annars använd f-strängar om du använder Python 3.6+ och. format()-metoden om du inte är det.

Vi har täckt alla 5 sätten att formatera strängar i Python. Det finns många användningsfall och exempel för varje metod. Vi jämförde också dessa metoder för att hitta vilken som är mest effektiv att använda i verkliga projekt.

Liknande läsningar:

  • Strängformatering i Python
  • Hur man använder strängformaterare i Python
  • Hur man formaterar en sträng med hjälp av en ordbok i Python