Metoda .format()
Metoda zwraca kopię odpowiednio sformatowanego łańcucha znakowego. Formatowanie stringa polega na zastąpieniu pól w oryginalnym łańcuchu znakowym odpowiadającymi im wartościami argumentów. Pola w łańcuchu znakowym, w które mają być wstawione wartości argumentów, zapisuje się przy pomocy nawiasów klamrowych {}. Zastępowanie nawiasów argumentami zdefiniowane może być albo poprzez indeks numeryczny, argument pozycyjny, czy argument kluczowy. Więcej o formatowaniu znajduje się pod tym linkiem.
Składnia:
str.format(*args, **kwargs)
Parametry:
*args – argumenty pozycyjne, które są wstawiane w pola określone nawiasami klamrowymi, zgodnie z kolejnością podawania argumentów. Przykład: pierwszy argument zostanie wstawiony w pierwszy napotkany nawias klamrowy.
**kwargs – argumenty kluczowe, które są wstawiane z zasadą klucz wartość. Przykład: jeżeli w ciągu znakowym umieścimy nawias klamrowy a w nim dowolną nazwę, dowolna nazwa staje się kluczem, który następnie należy użyć podczas podawania argumentów kluczowych w metodzie.
Wartość zwracana:
str – sformatowany ciąg znakowy zawierający wartości podanych argumentów.
Przykłady:
str1 = 'Cześć, {}' print(str1.format('Dominik')) # wynik --> Cześć, Dominik str2 = 'Test1 - {}; tekst2 - {}' print(str2.format('Dominik', 'Bednarski')) # wynik --> Test1 - Dominik; tekst2 - Bednarski str3 = 'Test1 - {1}; tekst2 - {0}' print(str3.format('Dominik', 'Bednarski')) # wynik --> Test1 - Bednarski; tekst2 - Dominik str4 = 'Test1 - {0}; tekst2 - {0}' print(str4.format('Dominik')) # wynik --> Test1 - Dominik; tekst2 - Dominik str5 = 'Test1 - {nazwisko}; tekst2 - {imie}' print(str5.format(imie = 'Dominik', nazwisko = 'Bednarski')) # wynik --> Test1 - Bednarski; tekst2 - Dominik str1 = "Zapłaciłem {:<7} PLN" print(str1.format(10)) # wynik --> Zapłaciłem 10 PLN str1 = "Zapłaciłem {:>7} PLN" print(str1.format(10)) # wynik --> Zapłaciłem 10 PLN str1 = "Zapłaciłem {:^7} PLN" print(str1.format(10)) # wynik --> Zapłaciłem 10 PLN str1 = "Zapłaciłem {:=7} PLN" print(str1.format(10)) # wynik --> Zapłaciłem 10 PLN str1 = "Zapłaciłem {:+} PLN" str2 = "Zapłaciłem {:+} PLN" print(str1.format(-10)) # wynik --> Zapłaciłem -10 PLN print(str2.format(10)) # wynik --> Zapłaciłem +10 PLN str1 = "Zapłaciłem {:-} PLN" str2 = "Zapłaciłem {:-} PLN" print(str1.format(-10)) # wynik --> Zapłaciłem -10 PLN print(str2.format(10)) # wynik --> Zapłaciłem 10 PLN str1 = "Zapłaciłem {: } PLN" str2 = "Zapłaciłem {: } PLN" print(str1.format(-10)) # wynik --> Zapłaciłem -10 PLN print(str2.format(10)) # wynik --> Zapłaciłem 10 PLN str1 = "Zapłaciłem {:,} PLN" print(str1.format(10000000)) # wynik --> Zapłaciłem 10,000,000 PLN str1 = "Zapłaciłem {:_} PLN" print(str1.format(10000000)) # wynik --> Zapłaciłem 10_000_000 PLN str1 = "Zapłaciłem {:b} PLN" # wyświetla reprezentację binarną print(str1.format(10)) # wynik --> Zapłaciłem 1010 PLN str1 = "Zapłaciłem {:c} PLN" print(str1.format(57)) # wynik --> Zapłaciłem 9 PLN str1 = "Zapłaciłem {:d} PLN" print(str1.format(0xFF)) # wynik --> Zapłaciłem 255 PLN str1 = "Zapłaciłem {:e} PLN" str2 = "Zapłaciłem {:E} PLN" print(str1.format(10000000)) # wynik --> Zapłaciłem 1.000000e+07 PLN print(str2.format(10000000)) # wynik --> Zapłaciłem 1.000000E+07 PLN str1 = "Zapłaciłem {:f} PLN" str2 = "Zapłaciłem {:.2f} PLN" print(str1.format(10.0)) # wynik --> Zapłaciłem 10.000000 PLN print(str2.format(10.0)) # wynik --> Zapłaciłem 10.00 PLN str1 = "Zapłaciłem {:F} PLN" str2 = "Zapłaciłem {:f} PLN" print(str1.format(float('inf'))) # wynik --> Zapłaciłem INF PLN print(str2.format(float('inf'))) # wynik --> Zapłaciłem inf PLN str1 = "Zapłaciłem {:g} PLN" print(str1.format(10.40)) # wynik --> Zapłaciłem 10.4 PLN str1 = "Zapłaciłem {:G} PLN" print(str1.format(10.40)) # wynik --> Zapłaciłem 10.4 PLN str1 = "Zapłaciłem {:o} PLN" print(str1.format(10)) # wynik --> Zapłaciłem 12 PLN str1 = "Zapłaciłem {:x} PLN" print(str1.format(255)) # wynik --> Zapłaciłem ff PLN str1 = "Zapłaciłem {:X} PLN" print(str1.format(255)) # wynik --> Zapłaciłem FF PLN str1 = "Zapłaciłem {:%} PLN" print(str1.format(10)) # wynik --> Zapłaciłem 1000.000000% PLN