Python-strengformatering – Hvordan formatere streng?
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
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'> ))> |
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
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
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)> |
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