Deformat()>metod är ett kraftfullt verktyg som låter utvecklare skapa formaterade strängar genom att bädda in variabler och värden i platshållare i en mallsträng. Denna metod erbjuder ett flexibelt och mångsidigt sätt att konstruera textutdata för ett brett spektrum av applikationer. Pytonorm string format() funktion har introducerats för att hantera komplex strängformatering mer effektivt. Ibland vill vi göra generaliserade utskriftspåståenden i så fall istället för att skriva utskriftspåståenden varje gång vi använder begreppet formatering.
Python String Format() Syntax
Syntax: { }.format(värde)
Parametrar:
- värde: Kan vara ett heltal, flyttals numerisk konstant, sträng, tecken eller till och med variabler.
Returtyp: Returnerar en formaterad sträng med värdet som skickas som parameter i platshållarpositionen.
String Format() i Python-exempel
En enkel demonstration av Python String format() Method i Pytonorm.
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)> |
>
>
Produktion
My name is Ram and I am 22 years old. 22 is my favorite number.>
Använder metoden .Format().
Denna metod för den inbyggda strängklassen tillhandahåller funktionalitet för komplexa variabelersättningar och värdeformatering. Denna nya formateringsteknik anses vara mer elegant. Den allmänna syntaxen för metoden format() är string.format(var1, var2,...). Här kommer vi att försöka förstå hur man formaterar en sträng som innehåller lockiga hängslen Pytonorm .
Python3
txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))> |
>
>
Produktion
I have 4.00 Rupees!>
Använda en enda formaterare
I det här exemplet kommer vi att använda strängparentes notation program för att demonstrera str. format() metod. Formaterare fungerar genom att lägga in ett eller flera ersättningsfält och platshållare som definieras av ett par krulliga hängslen { } in i en sträng och anropar 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>))> |
>
murare formel
>
Produktion
techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>
String format() med flera platshållare
Flera par lockiga hängslen kan användas när du formaterar sträng i Python . Låt oss säga att en annan variabelsubstitution behövs i meningen, vilket kan göras genom att lägga till ett andra par lockiga hängslen och skicka ett andra värde till metoden. Python kommer att ersätta platshållarna med värden i beställa.
Syntax : { } { } .format(värde1, värde2)
Parametrar: (värde1, värde2): Kan vara heltal, numeriska flyttalskonstanter, strängar, tecken och till och med variabler. Enda skillnaden är att antalet värden som skickas som parametrar i metoden format() måste vara lika med antalet platshållare som skapats i strängen.
Fel och undantag:
IndexError: Uppstår när strängen har en extra platshållare och vi inte skickade något värde för den i format()-metoden. Python tilldelar vanligtvis platshållarna standardindex i ordning som 0, 1, 2, 3…. för att komma åt de värden som skickas som parametrar. Så när den stöter på en platshållare vars index inte har något värde som skickas in som parameter, kastar det IndexError.
Python-program som använder flera platshållare för att demonstrera metoden str.format().
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'>))> |
>
>
Produktion
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 visar indexfel Antalet platshållare är fyra men det finns bara tre värden som passerats.
Python3
# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> |
>
>
Produktion
IndexError: tuple index out of range>
Formatera strängar med Escape-sekvenser
Du kan använda två eller flera speciellt utsedda tecken i en sträng för att formatera en sträng eller utföra ett kommando. Dessa tecken kallas escape-sekvenser. En Escape-sekvens i Python börjar med ett omvänt snedstreck (). Till exempel är en flyktsekvens där den vanliga betydelsen av bokstaven n bokstavligen escapes och ges en alternativ betydelse – en ny rad.
| Escape-sekvens | Beskrivning | Exempel |
|---|---|---|
| Bryter strängen till en ny linje | print('Jag designade den här ramsan för att förklara i sinom tid Allt jag vet') | |
| Lägger till en horisontell flik | print('Tid är en värdefull sak') | |
| Skriver ut ett snedstreck | print('Se den flyga förbi är pendeln svänger') | |
| ' | Skriver ut ett enda citat | print ('Det spelar ingen roll hur mycket du försöker') |
| Skriver ut ett dubbelt citat | print('Det är såoverkligt') | |
| a | låter som en klocka | print('a') |
Formaterare med positions- och sökordsargument
När platshållare { } är tomma, kommer Python att ersätta värdena som skickas genom str.format() i ordning. Värdena som finns inom metoden str.format() är i huvudsak tuppel datatyper och varje enskilt värde som finns i tupeln kan anropas med sitt indexnummer, som börjar med indexnumret 0. Dessa indexnummer kan skickas till de krulliga klammerparenteserna som fungerar som platshållare i den ursprungliga strängen.
Syntax : {0} {1}.format(positionsargument, sökordsargument)
Parametrar: (positionsargument, nyckelordsargument)
- Positionellt_argument kan vara heltal, numeriska flyttalskonstanter, strängar, tecken och till och med variabler.
- Keyword_argument är i huvudsak en variabel som lagrar något värde, som skickas som parameter.
Exempel: Att demonstrera användningen av formaterare med positionella nyckelargument.
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'>))> |
>
>
Produktion
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>
Typspecificering i Python
Fler parametrar kan inkluderas i de lockiga klammerparenteserna i vår syntax. Använd formatets kodsyntax {fält namn: omvandling} , var fält namn anger indexnumret för argumentet till metoden str.format() och konvertering hänvisar till datatypens konverteringskod.
Använder %s – strängkonvertering via str() före formatering
Python3
print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))> |
>
>
Produktion
geeksforgeeks Interngeeks Inter>
Använder %c - karaktär innan 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>))> |
>
>
Produktion
I wondered why the program was troubling me. Thenit dawned on me it was a bug .>
Använder %i tecken decimalt heltal och %d signerat decimalt heltal (bas-10) före formatering
Python3
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))> |
>
>
Produktion
Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>
En annan användbar typspecifikation
- %i osignerat decimalt heltal
- %O oktalt heltal
- f – flyttalsdisplay
- b – binärt tal
- O – oktalt tal
- %x – hexadecimal med gemener efter 9
- %X – hexadecimal med versaler efter 9
- Det är – exponentnotation
Du kan också ange formateringssymboler . Den enda förändringen är att använda ett kolon (:) istället för %.
Till exempel, istället för %s använd {:s} och istället för %d använd (:d}
Syntax : Sträng {field_name:conversion} Exempel.format(värde)
Fel och undantag:
ValueError: Fel uppstår under typkonvertering i denna metod.
Konvertera bas-10 decimala heltal till numeriska flyttalskonstanter
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>))> |
>
>
Produktion
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>
Typ som anger fel
Demonstrera ValueError medan du gör forcerad typomvandlingar
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))'''> |
>
>
java omvänd sträng
Produktion
ValueError: Unknown format code 'd' for object of type 'float'>
Utfyllnadsersättningar eller generera utrymmen
Demonstration av mellanrum när strängar skickas som parametrar
Som standard är strängar vänsterjusterade inom fältet och siffror är högerjusterade. Vi kan ändra detta genom att placera en anpassningskod precis efter kolon.
< : left-align text in the field ^ : center text in the field>: högerjustera text i fältet>
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'>))> |
>
>
Utgång:
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********>
Ansökningar
Formatterare används vanligtvis för att organisera data. Formaterare kan ses i sitt bästa ljus när de används för att organisera mycket data på ett visuellt sätt. Om vi visar databaser för användare kan användning av formatterare för att öka fältstorleken och ändra justeringen göra utdata mer läsbara.
Exempel: För att demonstrera organisationen av stora data med 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)> |
>
>
Utgång:
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>
Använda en ordbok för strängformatering
Använda en ordbok för att packa upp värden i platshållarna i strängen som behöver formateras. Vi använder i princip ** för att packa upp värdena. Den här metoden kan vara användbar vid strängersättning när du förbereder en SQL-fråga.
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))> |
>
>
Produktion:
My name is Tony Howard Stark AKA the Iron Man.>
Python-format() med lista
Givet en lista med flytvärden, är uppgiften att trunkera alla flytvärden till 2 decimalsiffror. Låt oss se de olika metoderna för att utföra uppgiften.
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)> |
>
>
Produktion
['100.77', '17.23', '60.99', '300.84']>