logo

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

zásielkový prechod
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