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