Elformat()>El mètode és una eina potent que permet als desenvolupadors crear cadenes amb format incrussant variables i valors en marcadors de posició dins d'una cadena de plantilla. Aquest mètode ofereix una manera flexible i versàtil de construir una sortida textual per a una àmplia gamma d'aplicacions. Python funció de format de cadena (). s'ha introduït per gestionar el format de cadena complexa de manera més eficient. De vegades volem fer declaracions d'impressió generalitzades en aquest cas en lloc d'escriure declaracions d'impressió cada vegada que utilitzem el concepte de format.
Sintaxi de Python String Format().
Sintaxi: { }.format(valor)
Paràmetres:
- valor: Pot ser un nombre enter, una constant numèrica de coma flotant, una cadena, caràcters o fins i tot variables.
Tipus de retorn: Retorna una cadena formatada amb el valor passat com a paràmetre a la posició del marcador de posició.
String Format() a l'exemple de Python
Una demostració senzilla del mètode Python String format() a Python.
Python 3
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)> |
>
>
Sortida
My name is Ram and I am 22 years old. 22 is my favorite number.>
Utilitzant el mètode .Format().
Aquest mètode de la classe de cadena integrada proporciona funcionalitat per a substitucions de variables complexes i format de valors. Aquesta nova tècnica de format es considera més elegant. La sintaxi general del mètode format() és string.format(var1, var2,...). Aquí intentarem entendre com formatar una cadena que conté claus Python .
Python 3
txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))> |
>
>
Sortida
I have 4.00 Rupees!>
Ús d'un formatador únic
En aquest exemple, farem servir el notació de claudàtors de cadena programa per demostrar la str. mètode format(). Els formatadors funcionen introduint un o més camps de substitució i marcadors de posició definits per un parell de claus. { } en una cadena i cridant el str.format() .
Python 3
# 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>))> |
>
com convertir una cadena a enter
>
Sortida
techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>
String format() amb diversos marcadors de posició
Es poden utilitzar diversos parells de claus durant el format cadena en Python . Suposem que es necessita una altra substitució de variable a la frase, que es pot fer afegint un segon parell de claus i passant un segon valor al mètode. Python substituirà els marcadors de posició amb valors a ordre.
Sintaxi: { } { } .format(valor1, valor2)
Paràmetres: (valor1, valor2): Poden ser nombres enters, constants numèriques de coma flotant, cadenes, caràcters i fins i tot variables. L'única diferència és que el nombre de valors passats com a paràmetres en el mètode format() ha de ser igual al nombre de marcadors de posició creats a la cadena.
Errors i excepcions:
IndexError: Es produeix quan la cadena té un marcador de posició addicional i no li hem passat cap valor al mètode format(). Python sol assignar els marcadors de posició amb l'índex predeterminat en ordre com 0, 1, 2, 3…. per accedir als valors passats com a paràmetres. Així, quan es troba amb un marcador de posició l'índex del qual no té cap valor passat com a paràmetre, llança IndexError.
El programa Python utilitza diversos marcadors de posició per demostrar el mètode str.format().
Python 3
# 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'>))> |
>
>
Sortida
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
El programa Python que demostra el nombre d'error d'índex de marcadors de posició és de quatre, però només s'han passat tres valors.
Python 3
# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> |
>
>
Sortida
IndexError: tuple index out of range>
Formatatge de cadenes mitjançant seqüències d'escapada
Podeu utilitzar dos o més caràcters especialment designats dins d'una cadena per formatar una cadena o executar una ordre. Aquests caràcters s'anomenen seqüències d'escapament. An Seqüència d'escapada en Python comença amb una barra invertida (). Per exemple, és una seqüència d'escapada en què el significat comú de la lletra n s'escapa literalment i se li dóna un significat alternatiu: una nova línia.
| Seqüència d'escapada | Descripció | Exemple |
|---|---|---|
| Trenca la corda en una línia nova | print('Vaig dissenyar aquesta rima per explicar-la a temps Tot el que sé') | |
| Afegeix una pestanya horitzontal | print('El temps és una cosa valuosa') | |
| Imprimeix una barra invertida | print('Mira'l volant com el pèndol es balanceja') | |
| ’ | Imprimeix una cita única | print('No importa ni tan sols quant t'ho intentis') |
| Imprimeix una cita doble | print('És tanirreal') | |
| a | fa un so com una campana | imprimir('a') |
Formatadors amb arguments de posició i paraules clau
Quan els marcadors de posició { } estan buits, Python substituirà els valors passats per str.format() en ordre. Els valors que existeixen dins del mètode str.format() són essencialment tupla tipus de dades i cada valor individual contingut a la tupla es pot cridar pel seu número d'índex, que comença amb el número d'índex 0. Aquests números d'índex es poden passar a les claus que serveixen com a marcadors de posició a la cadena original.
Sintaxi: {0} {1}.format(argument_posició, argument_clau)
Paràmetres: (argument_posició, argument_clau)
- Argument_posicional poden ser nombres enters, constants numèriques de coma flotant, cadenes, caràcters i fins i tot variables.
- Keyword_argument és essencialment una variable que emmagatzema algun valor, que es passa com a paràmetre.
Exemple: Demostrar l'ús de formatadors amb arguments clau de posició.
Python 3
# 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'>))> |
>
>
Sortida
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>
Especificació de tipus a Python
Es poden incloure més paràmetres a les claus de la nostra sintaxi. Utilitzeu la sintaxi del codi de format {field_name: conversió} , on nom_camp especifica el número d'índex de l'argument del mètode str.format() i la conversió fa referència al codi de conversió del tipus de dades.
S'està fent servir %s – conversió de cadenes mitjançant str() abans del format
Python 3
print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))> |
>
>
Sortida
geeksforgeeks Interngeeks Inter>
Utilitzant %c - personatge abans del format
Python 3
type> => 'bug'> result>=> 'troubling'> print>('I wondered why the program was>%>s me. Then> it dawned on me it was a>%>s .'>%> >(result,>type>))> |
>
>
Sortida
I wondered why the program was troubling me. Thenit dawned on me it was a bug .>
Utilitzant %i nombre enter decimal amb signe i %d nombre sencer decimal amb signe (base-10) abans del format
Python 3
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))> |
>
>
Sortida
Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>
Una altra especificació de tipus útil
- % en nombre sencer decimal sense signe
- %O nombre enter octal
- f - Visualització de coma flotant
- b - nombre binari
- O - nombre octal
- %x – hexadecimal amb lletres minúscules després de 9
- %X – hexadecimal amb lletres majúscules després de 9
- És - notació exponent
També pots especificar símbols de format . L'únic canvi és utilitzar dos punts (:) en lloc de %.
Per exemple, en lloc de %s utilitzeu {:s} i en comptes de %d feu servir (:d}
Sintaxi: Cadena {field_name:conversion} Exemple.format(valor)
Errors i excepcions:
ValueError: Es produeix un error durant la conversió de tipus en aquest mètode.
Converteix nombres enters decimals de base 10 en constants numèriques de coma flotant
Python 3
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>))> |
>
>
Sortida
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>
Tipus d'especificar errors
Demostreu ValueError mentre feu forçat conversions de tipus
Python 3
verificació nul·la a Java
# 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))'''> |
>
>
Sortida
ValueError: Unknown format code 'd' for object of type 'float'>
Substitucions de farciment o generació d'espais
Demostració de l'espaiat quan es passen cadenes com a paràmetres
Per defecte, les cadenes es justifiquen a l'esquerra dins del camp i els números es justifiquen a la dreta. Podem modificar-ho col·locant un codi d'alineació només seguint els dos punts.
< : left-align text in the field ^ : center text in the field>: alineeu el text a la dreta al camp>
Python 3
# 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'>))> |
>
>
Sortida:
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********>
Aplicacions
Els formatadors s'utilitzen generalment per organitzar dades. Els formatadors es poden veure amb la millor llum quan s'utilitzen per organitzar moltes dades d'una manera visual. Si mostrem bases de dades als usuaris, utilitzar formatadors per augmentar la mida del camp i modificar l'alineació pot fer que la sortida sigui més llegible.
Exemple: per demostrar l'organització de dades grans mitjançant format()
Python 3
# 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)> |
>
>
Sortida:
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>
Ús d'un diccionari per al format de cadena
Ús d'un diccionari per descomprimir valors als marcadors de posició de la cadena que s'ha de formatar. Bàsicament fem servir ** per desempaquetar els valors. Aquest mètode pot ser útil en la substitució de cadenes mentre es prepara una consulta SQL.
Python 3
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))> |
>
>
Sortida:
My name is Tony Howard Stark AKA the Iron Man.>
Python format() amb llista
Donada una llista de valors flotants, la tasca és truncar tots els valors flotants a 2 dígits decimals. Vegem els diferents mètodes per fer la tasca.
Python 3
# 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)> |
>
>
Sortida
['100.77', '17.23', '60.99', '300.84']>