Python | Výstupné formátovanie

Python | Výstupné formátovanie

V Pythone existuje niekoľko spôsobov, ako prezentovať výstup programu. Dáta môžu byť vytlačené vo forme čitateľnej pre človeka alebo zapísané do súboru pre budúce použitie alebo dokonca v inej špecifikovanej forme. Používatelia často chcú väčšiu kontrolu nad formátovaním výstupu, než len tlačenie hodnôt oddelených medzerou.

Výstupné formátovanie v Pythone

Existuje niekoľko spôsobov, ako formátovať výstup pomocou String Method in Python .

  • Použitie operátora String Modulo (%)
  • Použitie metódy formátovania
  • Použitie String Method
  • Pravidlo konverzie formátu Pythonu

Výstup formátovania pomocou operátora String Modulo (%)

The % operátorského modulu možno použiť aj na formátovanie reťazcov. Interpretuje ľavý argument podobne ako formát v štýle printf() ako v reťazcoch jazyka C, ktorý sa použije na pravý argument. V Pythone neexistuje funkcia printf(), ale je obsiahnutá funkčnosť starodávneho printf Python . Na tento účel je operátor modulo % preťažený triedou reťazca, aby vykonal formátovanie reťazca. Preto sa často nazýva reťazcový modulo (alebo niekedy dokonca modulový) operátor. Operátor string modulo ( % ) je stále dostupný v Pythone(3.x) a je široko používaný. Ale v súčasnosti je starý štýl formátovania z jazyka odstránený.

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>

Výkon

Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02 
Výstup formátovania pomocou operátora String Modulo (%)

Formátovanie výstupu pomocou operátora Modulo

V našom príklade sú dve z nich: %2d a %5.2f. Všeobecná syntax pre zástupný symbol formátu je:

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

Pozrime sa na zástupné symboly v našom príklade.

  • Prvý zástupný znak „%2d“ sa používa pre prvú zložku našej n-tice, t. j. celé číslo 1. Vytlačí sa s 2 znakmi, a keďže 1 pozostáva iba z jednej číslice, výstup je doplnený 1 medzerou na začiatku.
  • Druhý zástupný symbol „% 5.2f“ je určený pre pohyblivé číslo. Rovnako ako ostatné zástupné symboly sa uvádza so znakom %. Špecifikuje celkový počet číslic, ktoré by mal reťazec obsahovať, vrátane desatinnej čiarky a všetkých číslic, pred aj za desatinnou čiarkou.
  • Naše číslo s pohyblivou čiarou 05.333 je naformátované s 5 znakmi a presnosťou 2, ktoré je označené číslom nasledujúcim za „.“ v zástupnom symbole. Posledný znak „f“ označuje, že zástupný symbol predstavuje plávajúcu hodnotu.

Formátovanie výstupu pomocou metódy formátovania

Metóda format() bola pridaná v Pythone(2.6). Metóda formátovania reťazcov vyžaduje viac manuálneho úsilia. Používatelia používajú {} na označenie miesta, kde bude premenná nahradená, a môžu poskytnúť podrobné pokyny na formátovanie, ale používateľ musí poskytnúť aj informácie, ktoré sa majú formátovať. Táto metóda nám umožňuje zreťaziť prvky vo výstupe prostredníctvom pozičného formátovania. Napríklad -

Príklad 1: Kód vysvetľuje rôzne techniky formátovania reťazcov v jazyku Python. Hodnoty sú buď explicitne poskytnuté, alebo sa na ne odkazuje v poradí, v akom sa objavujú v procedúre format().f-Strings umožňujú použitie zložených zátvoriek a predpony f na vloženie výrazov do reťazca literály. Posúdia sa výrazy f-stringov a nahradia sa ich vhodnými hodnotami.

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

Výkon

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

Zátvorky a znaky v nich (tzv formátovať polia ) sú nahradené objektmi odovzdanými do metódy format(). Číslo v zátvorkách možno použiť na označenie polohy objektu odovzdaného do metódy format().

Príklad 2: Pomocou pozičných parametrov a pomenovaného argumentu ('other') v prvom riadku sa do šablóny reťazca pridajú hodnoty 'Geeks', 'For' a 'Geeks'.'Geeks:12, Portal: 0.55′ sa vytlačí, pričom prvá hodnota sa zobrazí ako 2-miestne celé číslo a druhé číslo má 2 desatinné miesta a 8-bitovú šírku. Pomenované argumenty metódy format() označené špecifickými menovkami („a“ a „p“) pre čísla „453“ a „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> ))>

Výkon

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 

Nasledujúci diagram s príkladom použitia znázorňuje, ako metóda formátu funguje pre pozičné parametre:

Formátovanie výstupu pomocou metódy formátovania

Výstupné formátovanie pomocou metódy formátovania

Príklad 3: Kód ukazuje, ako používať slovníky s metódou format() Pythonu. „Záložka“ slovníka v prvom príklade obsahuje kľúče a priradené hodnoty. Metóda format() používa indexovanie na vloženie hodnôt do šablóny reťazca. V druhom príklade sa ako údaje používajú pomenované kľúče v slovníku.

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

Výkon

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

Formátovanie výstupu pomocou metódy String

Tento výstup je naformátovaný pomocou reťazcová metóda t.j. operácie krájania a zreťazenia. Typ reťazca má niekoľko metód, ktoré pomáhajú pri formátovaní výstupu krajším spôsobom. Niektoré metódy, ktoré pomáhajú pri formátovaní výstupu, sú str.light() , str.rjust() , a 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> ,> '-'> ))>

Výkon

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

Pravidlo konverzie formátu Pythonu

Táto tabuľka uvádza štandardné pokyny na konverziu formátu, ktoré používa funkcia format() Pythonu.

Konverzia

Význam

d

Desatinné celé číslo

b

Binárny formát

O

osmičkový formát

v

Zastarané a ekvivalentné s „d“

x alebo X

Hexadecimálny formát

e alebo E

Exponenciálny zápis

f alebo F

Desatinné číslo s pohyblivou rádovou čiarkou

g alebo G

Všeobecný formát

c

Single Character

r

Formát reťazca (pomocou repr())

s

Formát reťazca (pomocou str()))

%

Percento