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