Szövegformázás: szövegkezelés, 2.rész

A szövegobjektumokkal való munka, és azok megjelenítésének egyszerűsítéséhez a Python sok eszközt ad a kezünkbe, kezdve például a '%' operátorral és a string.format() metódussal.

A '%' operátor nagyon hasznos, használatának alapját ez a példa jól szemlélteti:
>>> "Ez a blog a %s" % "Pythonkodjunk!"
'Ez a blog a Pythonkodjunk!'
>>> blog_name="Pythonkodjunk!"
>>> title="Ez a blog a %s"
>>> title % blog_name
'Ez a blog a Pythonkodjunk!'

Lehet számot is a stringbe illeszteni, ekkor nem %s a paraméter jelölése, hanem %d (egész) vagy %f (lebegőpontos)
>>> zokni=48
>>> print "A készleten lévő zoknik száma: %d" % (zokni)
A készleten lévő zoknik száma: 48
>>>
>>> zokni=48
>>> print "A készleten lévő zoknik száma: %f" % (zokni)
A készleten lévő zoknik száma: 48.000000
>>>

A % operátor nem csak egy paraméterrel tud dolgozni, hanem többel is. Ilyenkor a % utáni paramétereket egy tuple-ként kell átadni.

>>> zokni=48
>>> aru_neve="zokni"
>>> print "Jelenleg %d db %s van készleten." % (zokni,aru_neve)
Jelenleg 48 db zokni van készleten.

Nevesített paraméterek használata is lehetséges, ilyenkor viszont nem tuple az átadás formája, hanem dict, valamint ekkor az adatok sorrendje tetszőleges lehet.

>>> zokni=48
>>> aru_neve="zokni"
>>> print "Jelenleg %(mennyiseg)d db %(megnevezes)s van készleten." % {"megnevezes":aru_neve,"mennyiseg":zokni}
Jelenleg 48 db zokni van készleten.

Ez a funkció pontosan ugyanúgy működik mint a C nyelv sprintf függvénye (vagy a PHP-é) ezért nem részletezem túlságosan, rengeteg dolgot találni erről a neten.

A szövegek format metódusa hasonlóképpen dolgozik mint a % operátor annyi különbséggel, hogy a szövegben a behelyettesítések helyét kapcsos zárójel jelzi. Ebben vagy egy szám szerepel, ekkor a számnak megfelelő sorszámú elem kerül behelyettesítésre, ha meg szöveg, akkor a format nevesített argumentumokat vár.

>>> print "Jelenleg {0} db {1} van készleten".format(zokni,aru_neve)
Jelenleg 48 db zokni van készleten

>>> print "Jelenleg {mennyiseg} db {megnevezes} van készleten".format(megnevezes=aru_neve,mennyiseg=zokni)
Jelenleg 48 db zokni van készleten

Láthatóan a legnagyobb előnye a formatnak az, hogy nem kellett a formázó szövegben jelölni, hogy az adat milyen típusú. A Python 3-ban erősen javasolják a format használatát kizárólag, ugyanis a későbbiekben a %-os operátor elavulttá fog válni, és kikerül a nyelvből.

Nincsenek megjegyzések:

Megjegyzés küldése