Strengformatering lar deg lage dynamiske strenger ved å kombinere variabler og verdier. I denne artikkelen vil vi diskutere omtrent 5 måter å formatere en streng på.
Du vil lære ulike metoder for strengformatering med eksempler for bedre forståelse. La oss se på dem nå!
Hvordan formatere strenger i Python
Det er fem forskjellige måter å utføre strengformatering på Python
- Formatering med % Operator.
- Formatering med format()-strengmetoden.
- Formatering med strengliteraler, kalt f-strenger.
- Formatering med strengmalklasse
- Formatering med center() strengmetode.
Så vi vil se helheten av de ovennevnte måtene, og vi vil også fokusere på hvilken strengformateringsstrategi som er best.
1. Hvordan formatere streng med % Operator
Det er den eldste metoden for strengformatering. Her bruker vi modulo % operatør . Moduloen % er også kjent som strengformateringsoperatoren.
Python-formatstreng ved å bruke %-operatøren
I uttrykket Den skabbete, magre løshunden %s slukte % «hast», erstattes %s-plassholderen i strengen med verdien «hast».
Python3
gyldige identifikatorer i java
print>(>'The mangy, scrawny stray dog %s gobbled down'> %>'hurriedly'> +> >'the grain-free, organic dog food.'>)> |
>
>Produksjon
The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.>
Injisere flere strenger ved hjelp av modulo-operatoren
Her setter vi inn flere strenger med %-operatoren.
Python3
x>=> 'looked'> print>(>'Misha %s and %s around'>%>(>'walked'>,x))> |
>
>Produksjon
Misha walked and looked around>
Presisjonshåndtering i Python med %-operator
Flytende tall bruker formatet %a.bf . Her, en ville være minimum antall sifre som skal være til stede i strengen; disse kan være polstret med mellomrom hvis hele tallet ikke har så mange sifre.
I nærheten av dette, bf representerer hvor mange sifre som skal vises etter desimaltegn.
I denne koden inneholder strengen «Verdien av pi er: %5.4f» en formatspesifikasjon %5.4f. %5.4f-formatspesifikasjonen brukes til å formatere et flyttall med en minimumsbredde på 5 og en presisjon på 4 desimaler.
Python3
print>(>'The value of pi is: %5.4f'> %>(>3.141592>))> |
>
>Produksjon
The value of pi is: 3.1416>
Flere formatkonverteringstyper
I den gitte koden blir formateringsstrengen Python konvertert til heltall og flyttall med %d,%f.
Python3
variable>=> 12> string>=> 'Variable as integer>=> %>d
> Variable as>float> => %>f'>%>(variable, variable)> print> (string)> |
>
>Produksjon
Variable as integer = 12 Variable as float = 12.000000>
Merk: For å vite mer om %-formatering, se Strengeformatering i Python med %
2. Hvordan formatere streng med format()-metoden
Format()-metoden ble introdusert med Python3 for å håndtere kompleks strengformatering mer effektivt.
Formatere fungerer ved å sette inn ett eller flere erstatningsfelt og plassholdere definert av et par krøllete klammeparenteser { } i en streng og kalle opp str.format() . Verdien vi ønsker å sette inn i plassholderne og sette sammen med strengen som sendes som parametere til formatfunksjonen.
Syntaks: ‘String here {} og deretter {}’.format(‘noe1′,’noe2’)
Formatere String Python ved hjelp av format()-metoden
Denne koden bruker {} som plassholder, og så har vi kalt.format()-metoden på 'lik' med plassholderen.
Python3
print>(>'We all are {}.'>.>format>(>'equal'>))> |
>
>Produksjon
We all are equal.>
Indeksbasert innsetting
I denne koden brukes krøllete klammeparenteser {} med indekser innenfor strengen «{2} {1} {0}» for å indikere plasseringene der de tilsvarende verdiene skal plasseres.
Python3
print>(>'{2} {1} {0}'>.>format>(>'directions'>,> >'the'>,>'Read'>))> |
java-operatører
>
>Produksjon
Read the directions>
Sett inn objekt ved å tilordne nøkkelord
I denne koden brukes krøllete klammeparenteser {} med navngitte plassholdere ({a}, {b}, {c}) i strengen 'a: {a}, b: {b}, c: {c}' for å indikere posisjonene der de tilsvarende navngitte argumentene vil bli plassert.
Python3
det vakreste smilet
print>(>'a: {a}, b: {b}, c: {c}'>.>format>(a>=> 1>,> >b>=> 'Two'>,> >c>=> 12.3>))> |
>
>Produksjon
a: 1, b: Two, c: 12.3>
Gjenbruk de innsatte objektene
I denne koden brukes krøllete klammeparenteser {} med navngitte plassholdere ({p}) i strengen 'Den første {p} var ok, men {p} {p} var vanskelig for å indikere plasseringene der den tilsvarende navngitt.' argument p vil bli plassert.
Python3
print>(> >'The first {p} was alright, but the {p} {p} was tough.'>.>format>(p>=>'second'>))> |
>
>Produksjon
The first second was alright, but the second second was tough.>
Flyt presisjon med.format()-metoden
Syntaks: {[indeks]:[bredde][.precision][type]}
Typen kan brukes med formatkoder:
- 'd' for heltall
- 'f' for flyttall
- 'b' for binære tall
- 'O' for oktale tall
- 'x' for oktale heksadesimale tall
- 's' for streng
- 'Det er' for flyttall i et eksponentformat
Eksempel:
Begge kodene utfører strengformatering. Den første strengen er formatert med '%' og den andre strengen er formatert med .format().
Python3
print>(>'The valueof pi is: %1.5f'> %>3.141592>)> print>(>'The valueof pi is: {0:1.5f}'>.>format>(>3.141592>))> |
>
>Produksjon
The valueof pi is: 3.14159 The valueof pi is: 3.14159>
Merk: For å vite mer om str.format(), se format()-funksjonen i Python
3. Forstå Python f-streng
PEP 498 introduserte en ny strengformateringsmekanisme kjent som Literal String Interpolation eller mer vanlig som F-strenger (på grunn av det innledende f-tegnet foran strengen bokstavelig). Ideen bak f-String i Python er å gjøre strenginterpolering enklere.
For å lage en f-streng i Python, prefiks strengen med bokstaven f. Selve strengen kan formateres på omtrent samme måte som du ville gjort med str. format() . F-strenger gir en kortfattet og praktisk måte å bygge inn Python-uttrykk i strengliteraler for formatering.
Strengeformatering med F-strenger
I denne koden er f-strengen fMitt navn er {navn}. brukes til å interpolere verdien av navnevariabelen inn i strengen.
Python3
name>=> 'Ele'> print>(f>'My name is {name}.'>)> |
>
>Produksjon
My name is Ele.>
Denne nye formateringssyntaksen er veldig kraftig og enkel. Du kan også sette inn vilkårlige Python-uttrykk, og du kan til og med utføre aritmetiske operasjoner i den.
Aritmetiske operasjoner med F-strenger
I denne koden er f-strengen f Han sa at alderen hans er {2 * (a + b)}. brukes til å interpolere resultatet av uttrykket 2 * (a + b) inn i strengen.
Python3
a>=> 5> b>=> 10> print>(f>'He said his age is {2 * (a + b)}.'>)> |
>
>Produksjon
He said his age is 30.>
Vi kan også bruke lambda uttrykk i f-streng formatering.
Lambdauttrykk ved bruk av F-strenger
I denne koden er en anonym lambda-funksjon definert ved hjelp av lambda x: x*2. Denne lambda-funksjonen tar et argument x og returnerer dets doble.
Python3
latex font
print>(f>'He said his age is {(lambda x: x*2)(3)}'>)> |
>
>Produksjon
He said his age is 6>
Flytpresisjon i f-strengmetoden
I denne koden brukes f-strengformatering for å interpolere verdien av num-variabelen inn i strengen.
Syntax : {value:{width}.{precision}}> Python3
num>=> 3.14159> print>(f>'The valueof pi is: {num:{1}.{5}}'>)> |
>
>Produksjon
The valueof pi is: 3.1416>
Merk: For å vite mer om f-strenger, se f-strenger i Python
4. Python-strengmalklasse
I String-modulen lar Template Class oss lage forenklet syntaks for utdataspesifikasjon. Formatet bruker plassholdernavn dannet av $ med gyldig Python identifikatorer (alfanumeriske tegn og understreker). Å omringe plassholderen med klammeparenteser gjør at den kan følges av flere alfanumeriske bokstaver uten mellomrom. Å skrive $$ oppretter en enkelt escaped $:
Formatere String Python ved hjelp av malklasse
Denne koden importerer malklassen fra strengmodulen. Template-klassen lar oss lage en malstreng med plassholdere som kan erstattes med faktiske verdier. Her erstatter vi verdiene 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))> |
>
>Produksjon
Hello ! This is techcodeview.com.>
Merk: For å vite mer om String Template-klassen, se String Template Class i Python
5. Hvordan formatere streng ved hjelp av center()-metoden
Center()-metoden er en innebygd metode i Pythons str-klasse som returnerer en ny streng som er sentrert innenfor en streng med en spesifisert bredde.
Formatere streng ved hjelp av center()-metoden
Denne koden returnerer en ny streng polstret med mellomrom på venstre og høyre side.
Python3
string>=> 'GeeksForGeeks!'> width>=> 30> centered_string>=> string.center(width)> print>(centered_string)> |
>
java-operatører
>Produksjon
GeeksForGeeks!>
Python-formatstreng: % vs. .format vs. f-streng literal
f-strenger er raskere og bedre enn begge %-formatering og str.format() . f-strengs-uttrykk evalueres under kjøring, og vi kan også legge inn uttrykk i f-streng ved å bruke en veldig enkel og lettsyntaks.
Uttrykkene inne i klammeparentesene blir evaluert i runtime og deretter satt sammen med strengdelen av f-strengen og deretter returneres den endelige strengen.
Merk: Bruk Template String hvis strengen er en brukerlevert streng Ellers Bruk f-Strings hvis du er på Python 3.6+, og. format()-metoden hvis du ikke er det.
Vi har dekket alle 5 måtene for strengformatering i Python. Det er mange brukstilfeller og eksempler for hver metode. Vi sammenlignet også disse metodene for å finne hvilken som er mest effektiv å bruke i virkelige prosjekter.
Lignende lesninger:
- Stringformatering i Python
- Hvordan bruke strengformatere i Python
- Hvordan formatere en streng ved hjelp av en ordbok i Python