Formatowanie wydruku – użycie operatora %
Obiekty łańcuchowe mają (oprócz operacji + i *) specjalną wbudowaną operację: operator %
(modulo). Znana ona też jest pod nazwą operatora formatowania. Mając dany
format %
wartości
(gdzie format jest łańcuchem), specyfikacje formatu w format, są zastąpione przez
jeden lub więcej elementów w wartościach.
Jeśli format wymaga pojedynczego argumentu, wartości mogą być pojedynczym obiektem.
W przeciwnym przypadku, wartości muszą być w nawiasie, oddzielone przecinkami, i musi
ich być dokładnie tyle co specyfikacji formatu.
Specyfikacja formatu składa się z dwóch lub więcej charakterów (znaków drukarskich) i ma
następujące składowe, dokładnie w podanej kolejności:
1. Charakter
'%'
, który oznacza początek specyfikacji.
2. Flagi konwersji (opcjonalnie), które wpływają na wynik pewnych typów konwersji.
3. Minimalna szerokość pola (opcjonalnie).
4. Precyzja (opcjonalnie), podana jako
'.'
(kropka) po której następuje precyzja.
5. Typ konwersji.
Flagi konwersji:
Flaga
Znaczenie
'#'
Wartość konwersji używa alternatywnego formatu (określonego niżej).
'0'
Zamieniona wartość będzie wypełniona zerami dla wartości numerycznych.
'-'
Zamieniona wartość będzie wyrównana do lewej.
' '
(odstęp) Odstęp powinien być zostawiony przed liczbami dodatnimi powstałymi w
wyniku konwersji ze znakiem..
'+'
Znak (
'+'
lub
'-'
) poprzedzi konwersję.
Typy konwersji:
Konwersja
Znaczenie
Uwagi
'd'
Całkowita dziesiętna ze znakiem.
'i'
Całkowita dziesiętna ze znakiem.
'o'
Ósemkowa ze znakiem.
(1)
'x'
Szestnastkowa ze znakiem (małymi literami).
(2)
'X'
Szestnastkowa ze znakiem (wielkimi literami).
(2)
'e'
Zmiennoprzecinkowa w formacie wykładniczym (małymi literami).
(3)
'E'
Zmiennoprzecinkowa w formacie wykładniczym (wielkimi literami).
(3)
'f'
Zmiennoprzecinkowa w zapisie dziesiętnym.
(3)
'F'
Zmiennoprzecinkowa w zapisie dziesiętnym
(3)
Konwersja
Znaczenie
Uwagi
'g'
Zmiennoprzecinkowa. Używa wykładnika z literą e jeśli wykładnik jest
mniejszy niż -4 lub nie mniejszy niż precyzja, w innym przypadku
format dziesiętny.
(4)
'G'
Zmiennoprzecinkowa. Używa wykładnika z literą E jeśli wykładnik jest
mniejszy niż -4 lub nie mniejszy niż precyzja, w innym przypadku
format dziesiętny.
(4)
'c'
Pojedynczy charakter (akceptuje liczbę całkowitą lub łańcuch
jednoznakowy).
'r'
Łańcuch (zamienia obiekt Pythona używając repr()).
(5)
's'
Łańcuch (zamienia obiekt Pythona używając str()).
(5)
'a'
Łańcuch (zamienia obiekt Pythona używając ascii()).
(5)
'%'
Żaden argument nie jest zamieniony, zwraca charakter ‘%’ w wyniku.
Uwagi:
1. Format alternatywny powoduje, że początkowe zero jest wstawione pomiędzy
lewostronne wypełnienie i formatowanie liczby, chyba że pierwszym charakterem
liczby jest już zero.
2. Format alternatywny powoduje wstawienie przed liczbą ‘0x’ lub ‘0X’ (w zależności
od tego, czy użyte było
'x'
czy
'X'
), chyba że wynikiem jest zero.
3. Format alternatywny powoduje, że w wyniku jest zawsze kropka dziesiętna, nawet
jeśli nie ma po niej żadnych cyfr. Precyzja określa liczbę cyfr po kropce, a jej
wartością domyślną jest 6.
4. Format alternatywny powoduje, że w wyniku jest zawsze kropka dziesiętna, nawet
jeśli nie ma po niej żadnych cyfr. Nie są też usuwane końcowe zera (po kropce)
Precyzja określa liczbę cyfr po kropce, a jej wartością domyślną jest 6.
5. Jeśli precyzja jest równa
N
, to wynik jest obcinany do
N
charakterów.