[Python] Wyrażenia formatujące łańcuchy znaków

opublikował: Nikowski, 2014-01-06
Python oferuje wiele funkcji pozwalających na formatowanie tekstu. Zmienne mogą być traktowane na wiele sposobów, ja zdecydowałęm się tutaj opisać tylko te, które najłatwiej używać początkującym programistom.
 
Najłatwiejszym sposobem formatowania napisu jest użycie składni podobnej do 'format string' znanego z C, czyli wykorzystanie znaków formatujących bezpośrednio w napisie. Znaczącą tutaj różnicą jest jednak fakt, że w Pythonie, w przeciwieństwie do C, formatowanie napisu jest związane bezpośrednio z napisem, a nie z funkcją.
pierwsza_zmienna=”Pierwszy napis”

druga_zmienna=”Drugi napis”

trzecia zmienna=”%s %s”%(pierwsza_zmienna, druga_zmienna)

print trzecia zmienna
Pierwsze dwie linijki to zwykład deklaracja zmiennych, trzecia zaś zawiera operator '%', który w przypadku stringów został przeciążony. Wynikiem znajdującym się w trzeciej linijce będzie „Pierwszy Napis Drugi napis”. Jest to najłatwiejszy sposób formatowania spotykany w niewielkich skryptach, jednak często jest tak, że potrzebujemy bardziej skomplikowanego formatu. 
'{0}, {1}, {2}'.format('zero', 'jeden', 'dwa')
Drugi sposób formatowania pozwala na bardziej skomplikowane twory. Wyobraź sobie, że nie jest to zwykły string wypisujący ale na przykład schemat faktury w sklepie, zawieracjący nie przypadkowe słowa, ale dane personalne sklepu, kupującego i preformatowaną listę zakupionych produktów.  Argumenty mogą się powtarzać, na przykład:
'{0}{1}{0}'.format('jeden', 'dwa')
da w rezultacie:
'jedendwajeden'
Jednak sam przyznasz, że poleganie na kolejności argumentów funkcji nie wydaje się najwygodniejszym. Dlatego Python umożliwia również na nazwanie argumentów, które będziemy mu przekazywać:
'Polozenie GPS: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
gdzie latitude i longitude zostaną zamienione odpowiednimi, podanymi wyżej zmiennymi.
'Polozenie GPS: 37.24N, -115.81W'
Podobny efekt możemy uzyskać generując słownik przez całe działanie programu, a dopiero później wyspisując sformatowane dane:
>>> coord = {'latitude': '37.24N', 'longitude': '-115.81W'}

>>> 'Coordinates: {latitude}, {longitude}'.format(**coord)
Jest to właściwość szczególnie przydatna przy generowaniu stron WWW, plików PDF, bądź też tabelek.

Zarejestruj się albo zaloguj aby dodać komentarz


Brak komentarzy.

KONSTRUKTOR

Schrag Polska Sp.z o.o.
Konstantynów Łódzki, łódzkie

KOMISJONER

LIMNUSWORK Sp. z o.o.
Niemcy, -- dowolny Region --

wszystkie oferty

 

 

 

 
 
 

Kalendarz wydarzeń

WSZYSTKIE WYDARZENIA