logo

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

>

>

multiplexarea

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