Python | Formatarea ieșirii

Python | Formatarea ieșirii

În Python, există mai multe moduri de a prezenta rezultatul unui program. Datele pot fi tipărite într-o formă care poate fi citită de om sau scrise într-un fișier pentru utilizare ulterioară sau chiar într-o altă formă specificată. Utilizatorii doresc adesea mai mult control asupra formatării rezultatelor decât simpla imprimare a valorilor separate prin spațiu.

Formatarea ieșirii în Python

Există mai multe moduri de a formata ieșirea folosind metoda String în Piton .

  • Folosind String Modulo Operator (%)
  • Folosind metoda formatului
  • Folosind metoda String
  • Regula de conversie a formatului Python

Formatarea ieșirii folosind String Modulo Operator (%)

The % modul operator poate fi folosit și pentru formatarea șirurilor. Acesta interpretează argumentul din stânga la fel ca un format în stil printf() ca în șirurile de caractere din limbajul C care urmează să fie aplicate argumentului din dreapta. În Python, nu există nicio funcție printf(), dar funcționalitatea vechiului printf este conținută în Piton . În acest scop, operatorul modulo % este supraîncărcat de clasa șir pentru a efectua formatarea șirului. Prin urmare, este adesea numit operator șir modulo (sau uneori chiar numit modul). Operatorul modulo șir ( % ) este încă disponibil în Python(3.x) și este utilizat pe scară largă. Dar în zilele noastre vechiul stil de formatare este eliminat din limbaj.

Python3




# Python program showing how to use string modulo operator(%)> print> (> 'Geeks : %2d, Portal : %5.2f'> %> (> 1> ,> 05.333> ))> print> (> 'Total students : %3d, Boys : %2d'> %> (> 240> ,> 120> ))> # print integer value> print> (> '%7.3o'> %> (> 25> ))> # print octal value> print> (> '%10.3E'> %> (> 356.08977> ))> # print exponential value>

Ieșire

Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02 
Formatarea ieșirii folosind String Modulo Operator (%)

Formatarea ieșirii folosind Modulo Operator

Există două dintre acestea în exemplul nostru: %2d și %5.2f. Sintaxa generală pentru un substituent de format este:

 %[flags][width][.precision]type 

Să aruncăm o privire la substituenții din exemplul nostru.

  • Primul substituent „%2d” este folosit pentru prima componentă a tuplului nostru, adică întregul 1. Acesta va fi tipărit cu 2 caractere și, deoarece 1 constă dintr-o singură cifră, rezultatul este completat cu 1 necomplet.
  • Al doilea substituent „%5.2f” este pentru un număr flotant. Ca și alți substituenți, este introdus cu caracterul %. Specifică numărul total de cifre pe care trebuie să le conțină șirul, inclusiv punctul zecimal și toate cifrele, atât înainte, cât și după virgulă.
  • Numărul nostru flotant 05.333 este formatat cu 5 caractere și o precizie de 2, notat cu numărul care urmează după „.” în substituent. Ultimul caracter „f” indică faptul că substituentul reprezintă o valoare flotantă.

Formatarea ieșirii folosind metoda de formatare

Metoda format() a fost adăugată în Python(2.6). Metoda de formatare a șirurilor necesită mai mult efort manual. Utilizatorii folosesc {} pentru a marca locul unde va fi înlocuită o variabilă și pot oferi directive detaliate de formatare, dar utilizatorul trebuie să furnizeze și informațiile care urmează să fie formatate. Această metodă ne permite să concatenăm elemente într-o ieșire prin formatare pozițională. De exemplu -

Exemplul 1: Codul explică diferite tehnici de formatare a șirurilor Python. Valorile sunt fie furnizate în mod explicit, fie menționate în ordinea în care apar în procedura format() literali. Expresiile f-Strings sunt evaluate și le sunt înlocuite valorile corespunzătoare.

Python3




print> (> 'I love {} for '{}!''> .> format> (> 'Geeks'> ,> 'Geeks'> ))> # using format() method and referring a position of the object> print> (> '{0} and {1}'> .> format> (> 'Geeks'> ,> 'Portal'> ))> print> (> '{1} and {0}'> .> format> (> 'Geeks'> ,> 'Portal'> ))> print> (f> 'I love {'Geeks'} for '{'Geeks'}!''> )> # using format() method and referring a position of the object> print> (f> '{'Geeks'} and {'Portal'}'> )>

Ieșire

I love Geeks for 'Geeks!' Geeks and Portal Portal and Geeks I love Geeks for 'Geeks!' Geeks and Portal 

Parantezele și caracterele din ele (numite câmpuri de format ) sunt înlocuite cu obiectele trecute în metoda format(). Un număr dintre paranteze poate fi folosit pentru a se referi la poziția obiectului trecut în metoda format().

Exemplul 2: Cu ajutorul parametrilor poziționali și a unui argument numit („altul”) în prima linie, valorile „Geeks”, „For” și „Geeks” sunt adăugate șablonului șir. „Geeks:12, Portal: 0.55′ este tipărită, prima valoare apărând ca un număr întreg de 2 cifre, iar al doilea număr având 2 zecimale și o lățime de 8 biți. Argumentele numite ale metodei format(), notate prin etichete specifice („a” și „p”) pentru numerele „453” și „59.058”,

Python3




# combining positional and keyword arguments> print> (> 'Number one portal is {0}, {1}, and {other}.'> > .> format> (> 'Geeks'> ,> 'For'> , other> => 'Geeks'> ))> # using format() method with number> print> (> 'Geeks :{0:2d}, Portal :{1:8.2f}'> .> > format> (> 12> ,> 00.546> ))> # Changing positional argument> print> (> 'Second argument: {1:3d}, first one: {0:7.2f}'> .> > format> (> 47.42> ,> 11> ))> print> (> 'Geeks: {a:5d}, Portal: {p:8.2f}'> .> > format> (a> => 453> , p> => 59.058> ))>

Ieșire

Number one portal is Geeks, For, and Geeks. Geeks :12, Portal : 0.55 Second argument: 11, first one: 47.42 Geeks: 453, Portal: 59.06 

Următoarea diagramă cu un exemplu de utilizare ilustrează modul în care funcționează metoda de format pentru parametrii poziționali:

Formatarea ieșirii folosind metoda de formatare

Formatarea ieșirii folosind metoda Format

Exemplul 3: Codul arată cum să utilizați dicționarele cu metoda format() a lui Python. „Fila” dicționarului din primul exemplu are chei și valori asociate. Metoda format() folosește indexarea pentru a pune valorile în șablonul șir. În al doilea exemplu, cheile cu nume dintr-un dicționar sunt folosite ca date.

Python3




tab> => {> 'geeks'> :> 4127> ,> 'for'> :> 4098> ,> 'geek'> :> 8637678> }> # using format() in dictionary> print> (> 'Geeks: {0[geeks]:d}; For: {0[for]:d}; '> > 'Geeks: {0[geek]:d}'> .> format> (tab))> data> => dict> (fun> => 'GeeksForGeeks'> , adj> => 'Portal'> )> print> (> 'I love {fun} computer {adj}'> .> format> (> *> *> data))>

Ieșire

Geeks: 4127; For: 4098; Geeks: 8637678 I love GeeksForGeeks computer Portal 

Formatarea ieșirii folosind metoda String

Această ieșire este formatată utilizând metoda șirurilor adică operatii de feliere si concatenare. Tipul șir are câteva metode care ajută la formatarea ieșirii într-un mod mai elegant. Unele metode care ajută la formatarea unei ieșiri sunt str.light() , str.rjust() , și str.centre()

Python3




cstr> => 'I love geeksforgeeks'> # Printing the center aligned string with fillchr> print> (> 'Center aligned string with fillchr: '> )> print> (cstr.center(> 40> ,> '#'> ))> # Printing the left aligned string with '-' padding> print> (> 'The left aligned string is : '> )> print> (cstr.ljust(> 40> ,> '-'> ))> # Printing the right aligned string with '-' padding> print> (> 'The right aligned string is : '> )> print> (cstr.rjust(> 40> ,> '-'> ))>

Ieșire

Center aligned string with fillchr: ##########I love geeksforgeeks########## The left aligned string is : I love geeksforgeeks-------------------- The right aligned string is : --------------------I love geeksforgeeks 

Regula de conversie a formatului Python

Acest tabel listează liniile directoare standard de conversie a formatului utilizate de funcția format() din Python.

Conversie

Sens

d

Număr întreg zecimal

b

Format binar

O

format octal

în

Învechit și echivalent cu „d”

x sau X

Format hexazecimal

e sau E

Notă exponențială

f sau F

Decimală cu virgulă mobilă

g sau G

Format general

c

Un singur personaj

r

Format șir (folosind repr())

s

Format șir (folosind str()))

%

Procent