logo

Python String format() Metode

Deformat()>metoden er et kraftig verktøy som lar utviklere lage formaterte strenger ved å bygge inn variabler og verdier i plassholdere i en malstreng. Denne metoden tilbyr en fleksibel og allsidig måte å konstruere tekstutdata for et bredt spekter av bruksområder. Python string format() funksjon har blitt introdusert for å håndtere kompleks strengformatering mer effektivt. Noen ganger ønsker vi å lage generaliserte utskriftsutsagn i så fall i stedet for å skrive utskriftsutsagn hver gang vi bruker konseptet formatering.

Python String Format() Syntaks

Syntaks: { }.format(verdi)



Parametere:

  • verdi: Kan være et heltall, numerisk flytende komma, streng, tegn eller til og med variabler.

Returtype: Returnerer en formatert streng med verdien sendt som parameter i plassholderposisjonen.

String Format() i Python-eksempel

En enkel demonstrasjon av Python String format() Method in Python.



Python3






name>=> 'Ram'> age>=> 22> message>=> 'My name>is> {>0>}>and> I am {>1>} years> >old. {>1>}>is> my favorite> >number.'.>format>(name, age)> print>(message)>

>

>

Produksjon

My name is Ram and I am 22 years old. 22 is my favorite number.>

Bruke .Format()-metoden

Denne metoden for den innebygde strengklassen gir funksjonalitet for komplekse variabelerstatninger og verdiformatering. Denne nye formateringsteknikken anses som mer elegant. Den generelle syntaksen for format()-metoden er string.format(var1, var2,...). Her vil vi prøve å forstå hvordan du formaterer en streng som inneholder krøllete klammeparenteser Python .

Python3




txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))>

>

>

Produksjon

I have 4.00 Rupees!>

Bruke en enkelt formaterer

I dette eksemplet vil vi bruke notasjon for strengparentes program for å demonstrere str. format() metode. Formatere fungerer ved å sette inn ett eller flere erstatningsfelt og plassholdere definert av et par krøllete klammeparenteser { } inn i en streng og ringer til str.format() .

Python3




# using format option in a simple string> print>(>'{}, A computer science portal for geeks.'> >.>format>(>'techcodeview.com'>))> # using format option for a> # value stored in a variable> str> => 'This article is written in {}'> print>(>str>.>format>(>'Python'>))> # formatting a string using a numeric constant> print>(>'Hello, I am {} years old !'>.>format>(>18>))>

>

distributiv lov boolsk algebra

>

Produksjon

techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>

String format() med flere plassholdere

Flere par med krøllete seler kan brukes mens du formaterer streng i Python . La oss si at det trengs en annen variabelsubstitusjon i setningen, som kan gjøres ved å legge til et andre par krøllete bukseseler og sende en andre verdi inn i metoden. Python vil erstatte plassholderne med verdier i rekkefølge.

Syntaks: { } { } .format(verdi1, verdi2)

Parametere: (verdi1, verdi2): Kan være heltall, numeriske flyttallkonstanter, strenger, tegn og til og med variabler. Den eneste forskjellen er at antallet verdier som sendes som parametere i format()-metoden må være lik antallet plassholdere som er opprettet i strengen.

Feil og unntak:

Indeksfeil: Oppstår når streng har en ekstra plassholder, og vi ikke sendte noen verdi for den i format()-metoden. Python tildeler vanligvis plassholderne med standardindeks i rekkefølge som 0, 1, 2, 3…. for å få tilgang til verdiene som sendes som parametere. Så når den støter på en plassholder hvis indeks ikke har noen verdi sendt inn som parameter, kaster den IndexError.

Python-program som bruker flere plassholdere for å demonstrere str.format()-metoden.

Python3




# Multiple placeholders in format() function> my_string>=> '{}, is a {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> # different datatypes can be used in formatting> print>(>'Hi ! My name is {} and I am {} years old'> >.>format>(>'User'>,>19>))> # The values passed as parameters> # are replaced in order of their entry> print>(>'This is {} {} {} {}'> >.>format>(>'one'>,>'two'>,>'three'>,>'four'>))>

>

>

Produksjon

techcodeview.com, is a computer science portal for geeks Hi! My name is User and I am 19 years old This is one two three four>

String format() IndexError

Python-program som viser indeksfeil antall plassholdere er fire, men det er bare tre verdier som er bestått.

Python3




# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))>

>

>

Produksjon

IndexError: tuple index out of range>

Formatere strenger med Escape-sekvenser

Du kan bruke to eller flere spesielt utpekte tegn i en streng for å formatere en streng eller utføre en kommando. Disse karakterene kalles escape-sekvenser. An Escape-sekvens i Python starter med en omvendt skråstrek (). For eksempel er en escape-sekvens der den vanlige betydningen av bokstaven n bokstavelig talt er escaped og gitt en alternativ betydning – en ny linje.

Escape-sekvens Beskrivelse Eksempel
Bryter strengen til en ny linje print('Jeg har laget dette rimet for å forklare i god tid Alt jeg vet')
Legger til en horisontal fane print('Tid er en verdifull ting')
Skriver ut en omvendt skråstrek print('Se den fly forbi år pendelen svinger')
' Skriver ut et enkelt sitat print ('Det spiller ingen rolle hvor hardt du prøver')
Skriver ut et dobbelt sitat print('Det er såuvirkelig')
en lager en lyd som en bjelle print('a')

Formatere med posisjons- og søkeordargumenter

Når plassholdere { } er tomme, vil Python erstatte verdiene som sendes gjennom str.format() i rekkefølge. Verdiene som finnes i str.format()-metoden er i hovedsak tuppel datatyper og hver enkelt verdi i tuppelen kan kalles ved sitt indeksnummer, som starter med indeksnummeret 0. Disse indekstallene kan overføres til de krøllete klammeparentesene som fungerer som plassholdere i den opprinnelige strengen.

Syntaks: {0} {1}.format(posisjonsargument, søkeordargument)

Parametere: (posisjonsargument, søkeordargument)

  • Posisjonelt_argument kan være heltall, flytende komma numeriske konstanter, strenger, tegn og til og med variabler.
  • Keyword_argument er i hovedsak en variabel som lagrer en verdi, som sendes som parameter.

Eksempel: Å demonstrere bruken av formatere med posisjonelle nøkkelargumenter.

Python3




# Positional arguments> # are placed in order> print>(>'{0} love {1}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> # Reverse the index numbers with the> # parameters of the placeholders> print>(>'{1} love {0}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> print>(>'Every {} should know the use of {} {} programming and {}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,> >'Operating Systems'>))> # Use the index numbers of the> # values to change the order that> # they appear in the string> print>(>'Every {3} should know the use of {2} {1} programming and {0}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,>'Operating Systems'>))> # Keyword arguments are called> # by their keyword name> print>(>'{gfg} is a {0} science portal for {1}'> >.>format>(>'computer'>,>'geeks'>, gfg>=>'techcodeview.com'>))>

>

>

Produksjon

techcodeview.com love Geeks!!  Geeks love techcodeview.com!!  Every programmer should know the use of Open Source programming and Operating Systems  Every Operating Systems should know the use of Source Open programming and programmer  techcodeview.com is a computer science portal for geeks>

Type spesifisering i Python

Flere parametere kan inkluderes i de krøllede klammeparentesene i syntaksen vår. Bruk formatkodesyntaksen {feltnavn: omdannelse} , hvor feltnavn spesifiserer indeksnummeret til argumentet til str.format()-metoden, og konvertering refererer til konverteringskoden til datatypen.

Bruker %s – strengkonvertering via str() før formatering

Python3




print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))>

>

>

Produksjon

geeksforgeeks Interngeeks  Inter>

Bruker %c – karakter før formatering

Python3




type> => 'bug'> result>=> 'troubling'> print>('I wondered why the program was>%>s me. Then> it dawned on me it was a>%>s .'>%> >(result,>type>))>

>

>

Produksjon

I wondered why the program was troubling me. Thenit dawned on me it was a bug .>

Bruker %i fortegnet desimal heltall og %d fortegnet desimal heltall (base-10) før formatering

Python3


java programvare mønstre



match>=> 12000> site>=> 'Amazon'> print>('>%>s>is> so useful. I tried to look> up mobile>and> they had a nice one that cost>%>d rupees.'>%> (site, match))>

>

>

Produksjon

Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>

En annen nyttig type spesifisering

  • %i usignert desimal heltall
  • %O oktalt heltall
  • f – flytende kommadisplay
  • b – binært tall
  • O – oktalt tall
  • %x – heksadesimal med små bokstaver etter 9
  • %X – heksadesimal med store bokstaver etter 9
  • Det er – eksponentnotasjon

Du kan også spesifisere formatering av symboler . Den eneste endringen er å bruke et kolon (:) i stedet for %.

For eksempel, i stedet for %s bruk {:s} og i stedet for %d bruk (:d}

Syntaks: String {field_name:conversion} Eksempel.format(verdi)
Feil og unntak:
ValueError: Feil oppstår under typekonvertering i denne metoden.

Konverter base-10 desimalheltall til numeriske flyttallskonstanter

Python3




print>(>'This site is {0:f}% securely {1}!!'>.> >format>(>100>,>'encrypted'>))> # To limit the precision> print>(>'My average of this {0} was {1:.2f}%'> >.>format>(>'semester'>,>78.234876>))> # For no decimal places> print>(>'My average of this {0} was {1:.0f}%'> >.>format>(>'semester'>,>78.234876>))> # Convert an integer to its binary or> # with other different converted bases.> print>(>'The {0} of 100 is {1:b}'> >.>format>(>'binary'>,>100>))> print>(>'The {0} of 100 is {1:o}'> >.>format>(>'octal'>,>100>))>

>

>

Produksjon

This site is 100.000000% securely encrypted!! My average of this semester was 78.23% My average of this semester was 78% The binary of 100 is 1100100 The octal of 100 is 144>

Type Spesifiser feil

Demonstrere ValueError mens du gjør tvungen typekonverteringer

Python3




# When explicitly converted floating-point> # values to decimal with base-10 by 'd'> # type conversion we encounter Value-Error.> print>(>'The temperature today is {0:d} degrees outside !'> >.>format>(>35.567>))> # Instead write this to avoid value-errors> ''' print('The temperature today is {0:.0f} degrees outside !'> >.format(35.567))'''>

>

>

Produksjon

ValueError: Unknown format code 'd' for object of type 'float'>

Utfyllingserstatninger eller generering av mellomrom

Demonstrasjon av mellomrom når strenger sendes som parametere

Som standard er strenger venstrejustert i feltet, og tall er høyrejustert. Vi kan endre dette ved å plassere en justeringskode like etter kolon.

  <   : left-align text in the field   ^   : center text in the field>: høyrejuster tekst i feltet>

Python3




# To demonstrate spacing when> # strings are passed as parameters> print>(>'{0:4}, is the computer science portal for {1:8}!'> >.>format>(>'techcodeview.com'>,>'geeks'>))> # To demonstrate spacing when numeric> # constants are passed as parameters.> print>(>'It is {0:5} degrees outside !'> >.>format>(>40>))> # To demonstrate both string and numeric> # constants passed as parameters> print>(>'{0:4} was founded in {1:16}!'> >.>format>(>'techcodeview.com'>,>2009>))> # To demonstrate aligning of spaces> print>(>'{0:^16} was founded in {1:<4}!'> >.>format>(>'techcodeview.com'>,>2009>))> print>(>'{:*^20s}'>.>format>(>'Geeks'>))>

>

>

Utgang:

techcodeview.com, is the computer science portal for geeks ! It is 40 degrees outside! techcodeview.com was founded in 2009!  techcodeview.com was founded in 2009 ! *******Geeks********>

applikasjoner

Formatere brukes vanligvis til å organisere data. Formatere kan sees i sitt beste lys når de brukes til å organisere mye data på en visuell måte. Hvis vi viser databaser til brukere, kan bruk av formattere for å øke feltstørrelsen og endre justeringen gjøre utdataene mer lesbare.

Eksempel: For å demonstrere organiseringen av store data ved hjelp av format()

Python3




# which prints out i, i ^ 2, i ^ 3,> # i ^ 4 in the given range> # Function prints out values> # in an unorganized manner> def> unorganized(a, b):> >for> i>in> range>(a, b):> >print>(i, i>*>*>2>, i>*>*>3>, i>*>*>4>)> # Function prints the organized set of values> def> organized(a, b):> >for> i>in> range>(a, b):> ># Using formatters to give 6> ># spaces to each set of values> >print>(>'{:6d} {:6d} {:6d} {:6d}'> >.>format>(i, i>*>*> 2>, i>*>*> 3>, i>*>*> 4>))> # Driver Code> n1>=> int>(>input>(>'Enter lower range :- '>))> n2>=> int>(>input>(>'Enter upper range :- '>))> print>(>'------Before Using Formatters-------'>)> # Calling function without formatters> unorganized(n1, n2)> print>()> print>(>'-------After Using Formatters---------'>)> print>()> # Calling function that contains> # formatters to organize the data> organized(n1, n2)>

>

>

Utgang:

Enter lower range :- 3 Enter upper range :- 10 ------Before Using Formatters------- 3 9 27 81 4 16 64 256 5 25 125 625 6 36 216 1296 7 49 343 2401 8 64 512 4096 9 81 729 6561 -------After Using Formatters---------  3 9 27 81  4 16 64 256  5 25 125 625  6 36 216 1296  7 49 343 2401  8 64 512 4096  9 81 729 6561>

Bruke en ordbok for strengformatering

Bruke en ordbok for å pakke ut verdier i plassholderne i strengen som må formateres. Vi bruker i utgangspunktet ** for å pakke ut verdiene. Denne metoden kan være nyttig i strengerstatning mens du forbereder en SQL-spørring.

Python3




introduction>=> 'My name is {first_name} {middle_name} {last_name} AKA the {aka}.'> full_name>=> {> >'first_name'>:>'Tony'>,> >'middle_name'>:>'Howard'>,> >'last_name'>:>'Stark'>,> >'aka'>:>'Iron Man'>,> }> # Notice the use of '**' operator to unpack the values.> print>(introduction.>format>(>*>*>full_name))>

>

>

Produksjon:

My name is Tony Howard Stark AKA the Iron Man.>

Python-format() med liste

Gitt en liste over flyteverdier, er oppgaven å avkorte alle flyteverdier til 2 desimaler. La oss se de forskjellige metodene for å utføre oppgaven.

Python3




# Python code to truncate float> # values to 2 decimal digits.> > # List initialization> Input> => [>100.7689454>,>17.232999>,>60.98867>,>300.83748789>]> > # Using format> Output>=> [>'{:.2f}'>.>format>(elem)>for> elem>in> Input>]> > # Print output> print>(Output)>

>

>

Produksjon

['100.77', '17.23', '60.99', '300.84']>