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.
Zaloguj się aby dodać komentarz