logo

Python-strengformatering - Hvordan formateres streng?

Strengformatering giver dig mulighed for at oprette dynamiske strenge ved at kombinere variabler og værdier. I denne artikel vil vi diskutere omkring 5 måder at formatere en streng på.

Du vil lære forskellige metoder til strengformatering med eksempler for bedre forståelse. Lad os se på dem nu!



Sådan formateres strenge i Python

Der er fem forskellige måder at udføre strengformatering på Python

  • Formatering med % Operator.
  • Formatering med format()-strengmetoden.
  • Formatering med strenge bogstaver, kaldet f-strenge.
  • Formatering med String Template Class
  • Formatering med center() strengmetode.

Så vi vil se helheden af ​​de ovennævnte måder, og vi vil også fokusere på, hvilken strengformateringsstrategi der er den bedste.

1. Sådan formateres streng med % Operator

Det er den ældste metode til strengformatering. Her bruger vi modulo % operatør . Modulo % er også kendt som strengformateringsoperatoren.



Python-formatstreng ved hjælp af %-operatoren

I udtrykket Den skæve, magre herreløse hund %s slugte % 'hurtigt', erstattes %s pladsholderen i strengen med værdien 'hurriedly'.

Python3

linux tastaturgenveje






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.>

Injicere flere strenge ved hjælp af modulo-operatoren

Her indsætter vi flere strenge med %-operatoren.

Python3




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

>

>

Produktion

Misha walked and looked around>

Præcisionshåndtering i Python ved hjælp af % operator

Flydende kommatal bruger formatet %a.bf . Her, -en ville være det mindste antal cifre, der skal være til stede i strengen; disse kan være polstret med mellemrum, hvis hele tallet ikke har så mange cifre.

Tæt på dette, bf repræsenterer hvor mange cifre der skal vises efter decimaltegnet.

I denne kode indeholder strengen 'Værdien af ​​pi er: %5.4f' en formatspecifikation %5.4f. %5.4f-formatspecifikationen bruges til at formatere et flydende decimaltal med en minimumsbredde på 5 og en præcision på 4 decimaler.

Python3




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

>

>

Produktion

The value of pi is: 3.1416>

Flere formatkonverteringstyper

I den givne kode konverteres formateringsstrengen Python til heltal og flydende komma 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>

Bemærk: For at vide mere om %-formatering, se Strengformatering i Python ved hjælp af %

2. Sådan formateres streng ved hjælp af format()-metoden

Format() metode blev introduceret med Python3 til at håndtere kompleks strengformatering mere effektivt.

Formatere fungerer ved at indsætte et eller flere erstatningsfelter og pladsholdere defineret af et par krøllede klammeparenteser { } i en streng og kalde str.format() . Den værdi, vi ønsker at indsætte i pladsholderne og sammenkæde med strengen, der sendes som parametre til formatfunktionen.

Syntaks: ‘String here {} og derefter også {}’.format(‘noget1′,’noget2’)

Formatering af String Python ved hjælp af format()-metoden

Denne kode bruger {} som en pladsholder, og så har vi kaldt.format()-metoden på 'lig' med pladsholderen.

Python3




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

>

>

Produktion

We all are equal.>

Indeksbaseret indsættelse

I denne kode bruges krøllede klammeparenteser {} med indekser i strengen '{2} {1} {0}' for at angive de positioner, hvor de tilsvarende værdier vil blive placeret.

Python3




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

javascript print

>

>

Produktion

Read the directions>

Indsæt objekt ved at tildele nøgleord

I denne kode bruges krøllede klammeparenteser {} med navngivne pladsholdere ({a}, {b}, {c}) i strengen 'a: {a}, b: {b}, c: {c}' for at angive de positioner, hvor de tilsvarende navngivne argumenter vil blive placeret.

Python3


mylivecricket ind



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

>

>

Produktion

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

Genbrug de indsatte objekter

I denne kode bruges krøllede klammeparenteser {} med navngivne pladsholdere ({p}) i strengen 'Den første {p} var i orden, men {p} {p} var svær for at angive de positioner, hvor den tilsvarende navngivne.' argument p vil blive placeret.

Python3




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.>

Flyd præcision med.format()-metoden

Syntaks: {[indeks]:[bredde][.præcision][type]}

Typen kan bruges med formatkoder:

  • 'd' for heltal
  • 'f' for flydende kommatal
  • 'b' for binære tal
  • 'O' for oktale tal
  • 'x' for oktale hexadecimale tal
  • 's' for snor
  • 'Det er' for flydende komma i et eksponentformat

Eksempel:

Begge koder laver strengformatering. Den første streng er formateret med '%', og den anden streng er formateret 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>

Bemærk: For at vide mere om str.format(), se format() funktion i Python

3. Forståelse af Python f-streng

PEP 498 introducerede en ny strengformateringsmekanisme kendt som Literal String Interpolation eller mere almindeligt som F-strenge (på grund af det indledende f-tegn foran strengen literal). Ideen bag f-String i Python er at gøre strenginterpolation enklere.

For at oprette en f-streng i Python skal du foran strengen med bogstavet f. Selve strengen kan formateres på nogenlunde samme måde, som du ville med str. format() . F-strenge giver en kortfattet og praktisk måde at indlejre Python-udtryk i strengliteraler til formatering.

Strengeformatering med F-strenge

I denne kode er f-strengen f Mit navn er {navn}. bruges til at interpolere værdien af ​​navnevariablen i strengen.

Python3




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

>

>

Produktion

My name is Ele.>

Denne nye formateringssyntaks er meget kraftfuld og nem. Du kan også indsætte vilkårlige Python-udtryk, og du kan endda lave aritmetiske operationer i det.

Aritmetiske operationer ved hjælp af F-strenge

I denne kode er f-strengen f Han sagde, at hans alder er {2 * (a + b)}. bruges til at interpolere resultatet af udtrykket 2 * (a + b) i strengen.

Python3




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

>

>

Produktion

He said his age is 30.>

Vi kan også bruge lambda udtryk i f-streng formatering.

Lambda-udtryk ved hjælp af F-strenge

I denne kode er en anonym lambda-funktion defineret ved hjælp af lambda x: x*2. Denne lambda-funktion tager et argument x og returnerer dets double.

Python3


maskinsprog



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

>

>

Produktion

He said his age is 6>

Flydepræcision i f-strengmetoden

I denne kode bruges f-streng-formatering til at interpolere værdien af ​​num-variablen i strengen.

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

Python3




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

>

>

Produktion

The valueof pi is: 3.1416>

Bemærk: For at vide mere om f-strenge, se f-strenge i Python

4. Python-strengskabelonklasse

I String-modulet giver Template Class os mulighed for at skabe forenklet syntaks til outputspecifikation. Formatet bruger pladsholdernavne dannet af $ med gyldig Python identifikatorer (alfanumeriske tegn og understregninger). Omkring pladsholderen med klammeparenteser kan den efterfølges af flere alfanumeriske bogstaver uden mellemrum. Ved at skrive $$ oprettes en enkelt escaped $:

Formatering af String Python ved hjælp af skabelonklasse

Denne kode importerer skabelonklassen fra strengmodulet. Skabelonklassen giver os mulighed for at oprette en skabelonstreng med pladsholdere, der kan erstattes med faktiske værdier. Her erstatter vi værdierne n1 og n2 i stedet for n3 og n4 i strengen 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.>

Bemærk: For at vide mere om String Template-klassen, se String Template Class i Python

5. Sådan formateres streng ved hjælp af center()-metoden

Center()-metoden er en indbygget metode i Pythons str-klasse, der returnerer en ny streng, der er centreret i en streng med en specificeret bredde.

Formatering af streng ved hjælp af center()-metoden

Denne kode returnerer en ny snor polstret med mellemrum i venstre og højre side.

Python3




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

>

javascript print

>

Produktion

 GeeksForGeeks!>

Python-formatstreng: % vs. .format vs. f-streng literal

f-strenge er hurtigere og bedre end begge %-formatering og str.format() . f-strenge udtryk evalueres under kørsel, og vi kan også indlejre udtryk i f-streng ved at bruge en meget enkel og nem syntaks.

Udtrykkene inde i klammerne evalueres i runtime og sættes derefter sammen med strengdelen af ​​f-strengen og derefter returneres den endelige streng.

Bemærk: Brug Template String, hvis strengen er en brugerleveret streng. Ellers Brug f-Strings, hvis du er på Python 3.6+, og. format()-metoden, hvis du ikke er det.

Vi har dækket alle 5 måder at formatere strenge på i Python. Der er mange use cases og eksempler for hver metode. Vi sammenlignede også disse metoder for at finde ud af, hvilken der er mest effektiv at bruge i virkelige projekter.

Lignende læsninger:

  • Stringformatering i Python
  • Sådan bruger du strengformatere i Python
  • Sådan formateres en streng ved hjælp af en ordbog i Python