logo

Metoda Python String format().

Theformat()>metoda este un instrument puternic care permite dezvoltatorilor să creeze șiruri formatate prin încorporarea variabilelor și valorilor în substituenți într-un șir șablon. Această metodă oferă o modalitate flexibilă și versatilă de a crea rezultate textuale pentru o gamă largă de aplicații. Piton funcția format() șir a fost introdus pentru a gestiona mai eficient formatarea șirurilor complexe. Uneori dorim să facem declarații de tipărire generalizate în acest caz, în loc să scriem instrucțiuni de tipărire de fiecare dată când folosim conceptul de formatare.

Sintaxa Python String Format().

Sintaxă: { }.format(valoare)



Parametri:

  • valoare: Poate fi un număr întreg, constantă numerică cu virgulă mobilă, șir, caractere sau chiar variabile.

Tip returnare: Returnează un șir formatat cu valoarea transmisă ca parametru în poziția substituentului.

String Format() în exemplul Python

O demonstrație simplă a metodei Python String format() în Piton.



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)>

>

>

Ieșire

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

Folosind metoda .Format().

Această metodă a clasei de șir încorporate oferă funcționalitate pentru substituții complexe de variabile și formatare a valorilor. Această nouă tehnică de formatare este considerată mai elegantă. Sintaxa generală a metodei format() este string.format(var1, var2,…). Aici vom încerca să înțelegem cum să formatăm un șir care conține bretele Piton .

Python3




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

>

>

Ieșire

I have 4.00 Rupees!>

Folosind un singur formatator

În acest exemplu, vom folosi notație paranteză șir program pentru demonstrarea str. metoda format(). Formatatoarele funcționează introducând unul sau mai multe câmpuri de înlocuire și substituenți definiți de o pereche de acolade { } într-un șir și apelând la 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>))>

>

șir la jsonobject

>

Ieșire

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

Format de șir () cu mai mulți substituenți

Pot fi folosite mai multe perechi de acolade în timpul formatării șir în Python . Să presupunem că este necesară o altă substituție de variabilă în propoziție, care poate fi făcută prin adăugarea unei a doua perechi de acolade și trecând o a doua valoare în metodă. Python va înlocui substituenții cu valori în Ordin.

Sintaxa: { } { } .format(valoare1, valoare2)

Parametri: (valoare1, valoare2): Pot fi numere întregi, constante numerice în virgulă mobilă, șiruri de caractere, caractere și chiar variabile. Singura diferență este că numărul de valori transmise ca parametri în metoda format() trebuie să fie egal cu numărul de substituenți creați în șir.

Erori și excepții:

IndexError: Apare atunci când șirul are un substituent suplimentar și nu i-am transmis nicio valoare în metoda format(). Python atribuie de obicei substituenții cu index implicit, în ordine ca 0, 1, 2, 3... pentru a accesa valorile transmise ca parametri. Deci, când întâlnește un substituent al cărui index nu are nicio valoare trecută în interior ca parametru, aruncă IndexError.

Programul Python care folosește mai mulți substituenți pentru a demonstra metoda 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'>))>

>

>

Ieșire

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>

Format șir () IndexError

Programul Python care demonstrează numărul de substituenți al erorii de index este de patru, dar au trecut doar trei valori.

Python3




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

>

>

Ieșire

IndexError: tuple index out of range>

Formatarea șirurilor folosind secvențe de evacuare

Puteți utiliza două sau mai multe caractere special desemnate într-un șir pentru a formata un șir sau pentru a efectua o comandă. Aceste caractere sunt numite secvențe de evacuare. Un Secvență de evacuare în Python începe cu o bară oblică inversă (). De exemplu, este o secvență de evadare în care sensul comun al literei n este literalmente scăpat și i se oferă un sens alternativ - o nouă linie.

Secvență de evadare Descriere Exemplu
Rupe șirul într-o nouă linie print(‘Am conceput această rimă pentru a explica la timp Tot ce știu’)
Adaugă o filă orizontală print(‘Timpul este un lucru valoros’)
Imprimă o bară oblică inversă print(‘Uită-te cum zboară pe lângă în timp ce pendulul se balansează’)
Imprimă un singur citat print(‘Nici nu contează cât de mult încerci’)
Tipărește un citat dublu print(‘Este atât deireal’)
A scoate un sunet ca un clopot print(‘a’)

Formatatoare cu argumente poziționale și cuvinte cheie

Când substituenți { } sunt goale, Python va înlocui valorile trecute prin str.format() în ordine. Valorile care există în cadrul metodei str.format() sunt în esență tuplu tipuri de date și fiecare valoare individuală conținută în tuplu poate fi apelată prin numărul său de index, care începe cu numărul de index 0. Aceste numere de index pot fi trecute în acolade care servesc drept substituenți în șirul original.

Sintaxa: {0} {1}.format(argument_pozițional, argument_cheie)

Parametri: (argument_pozițional, argument_cheie)

  • Argumentul_pozițional pot fi numere întregi, constante numerice în virgulă mobilă, șiruri de caractere, caractere și chiar variabile.
  • argument_cheie este în esență o variabilă care stochează o anumită valoare, care este transmisă ca parametru.

Exemplu: Pentru a demonstra utilizarea formatatoarelor cu argumente cheie poziționale.

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'>))>

>

>

Ieșire

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>

Tip Specificarea în Python

Mai mulți parametri pot fi incluși în acoladele sintaxei noastre. Utilizați sintaxa codului de format {numele domeniului: conversie} , Unde numele domeniului specifică numărul de index al argumentului la metoda str.format(), iar conversia se referă la codul de conversie al tipului de date.

Folosind %s – conversie de șir prin str() înainte de formatare

Python3




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

>

>

Ieșire

geeksforgeeks Interngeeks  Inter>

Folosind %c - caracter înainte de formatare

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>))>

>

>

Ieșire

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

Folosind %i întreg zecimal cu semn și %d întreg zecimal cu semn (bază-10) înainte de formatare

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))>

>

>

Ieșire

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

O altă specificare utilă a tipului

  • %în întreg zecimal fără semn
  • %O întreg octal
  • f – afișaj în virgulă mobilă
  • b – număr binar
  • O – număr octal
  • %X – hexazecimal cu litere mici după 9
  • %X – hexazecimal cu litere mari după 9
  • Este – notația exponenților

De asemenea, puteți specifica simboluri de formatare . Singura modificare este utilizarea două puncte (:) în loc de %.

De exemplu, în loc de %s folosiți {:s} și în loc de %d folosiți (:d}

Sintaxa: Șir {field_name:conversion} Example.format(valoare)
Erori și excepții:
ValueError: Apare eroare în timpul conversiei de tip în această metodă.

Convertiți numere întregi zecimale de bază 10 în constante numerice în virgulă mobilă

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>))>

>

>

Ieșire

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>

Tip Specificarea erorilor

Demonstrați ValueError în timp ce faceți forțat conversii de tip

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))'''>

>

>

Ieșire

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

Substituții de umplutură sau generarea de spații

Demonstrarea spațierii atunci când șirurile sunt transmise ca parametri

În mod implicit, șirurile sunt justificate la stânga în câmp, iar numerele sunt justificate la dreapta. Putem modifica acest lucru plasând un cod de aliniere doar după două puncte.

  <   : left-align text in the field   ^   : center text in the field>: aliniați textul la dreapta în câmp>

Python3




cazuri de testare junit
# 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'>))>

>

>

Ieșire:

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********>

Aplicații

Formatatoarele sunt utilizate în general pentru a organiza datele. Formatatoarele pot fi văzute în cea mai bună lumină atunci când sunt folosite pentru a organiza o mulțime de date într-un mod vizual. Dacă le arătăm utilizatorilor baze de date, folosirea formatatoarelor pentru a mări dimensiunea câmpului și a modifica alinierea poate face rezultatul mai lizibil.

Exemplu: pentru a demonstra organizarea datelor mari folosind 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)>

>

>

Ieșire:

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>

Utilizarea unui dicționar pentru formatarea șirurilor

Utilizarea unui dicționar pentru a despacheta valori în substituenții din șirul care trebuie formatat. Practic folosim ** pentru a despacheta valorile. Această metodă poate fi utilă în înlocuirea șirurilor de caractere în timpul pregătirii unei interogări SQL.

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))>

>

>

Ieșire:

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

Python format() cu listă

Având în vedere o listă de valori float, sarcina este de a trunchia toate valorile float la 2 cifre zecimale. Să vedem diferitele metode de a face sarcina.

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)>

>

>

Ieșire

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