Wbudowana metoda format () zwraca sformatowaną reprezentację danej wartości kontrolowanej przez specyfikator formatu.
format()
Funkcja jest podobna do metody format string. Wewnętrznie obie metody wywołują __format__()
metodę obiektu.
Chociaż funkcja wbudowana format()
jest implementacją niskiego poziomu do formatowania obiektu przy użyciu __format__()
wewnętrznego, łańcuch format()
jest implementacją wyższego poziomu, która może również wykonywać złożone operacje formatowania na wielu ciągach obiektów.
Składnia format () to:
format (wartość (, format_spec))
format () Parametry
format()
Funkcja ma dwa parametry:
- wartość - wartość do sformatowania
- format_spec - specyfikacja dotycząca sposobu formatowania wartości.
Specyfikator formatu może mieć format:
((wypełnij) wyrównaj) (znak) (#) (0) (szerokość) (,) (. precyzja) (typ) gdzie opcje to fill :: = dowolny znak align :: = "" | "=" | Znak „^” :: = „+” | „-” | "" szerokość :: = dokładność liczby całkowitej :: = typ liczby całkowitej :: = "b" | „c” | „d” | „e” | „E” | „f” | „F” | „g” | „G” | „n” | „o” | „s” | „x” | „X” | „%”
Odwiedź te linki, aby dowiedzieć się więcej o typach formatów i wyrównaniu.
Wartość zwracana z formatu ()
format()
Funkcja zwraca sformatowany reprezentację danej wartości określonej przez specyfikacją formatu.
Przykład 1: Formatowanie liczb za pomocą format ()
# d, f and b are type # integer print(format(123, "d")) # float arguments print(format(123.4567898, "f")) # binary format print(format(12, "b"))
Wynik
123 123.456790 1100
Przykład 2: Formatowanie liczb z wypełnieniem, wyrównaniem, znakiem, szerokością, dokładnością i typem
# integer print(format(1234, "*>+7,d")) # float number print(format(123.4567, "^-09.3f"))
Wynik
* + 1234 0123,4570
Tutaj, podczas formatowania liczby całkowitej 1234
, określiliśmy specyfikator formatowania *>+7,d
. Rozumiemy każdą opcję:
*
- Jest to znak wypełnienia, który wypełnia puste przestrzenie po sformatowaniu>
- Jest to opcja wyrównania do prawej, która wyrównuje ciąg wyjściowy do prawej+
- To opcja znaku wymusza podpisanie numeru (posiadanie znaku po jego lewej stronie)7
- Jest to opcja szerokości, która wymusza minimalną szerokość 7, pozostałe spacje zostaną wypełnione znakiem wypełnienia,
- To operator tysięcy umieszcza przecinek między wszystkimi tysiącami.d
- Jest to opcja typu, która określa, że liczba jest liczbą całkowitą.
Podczas formatowania liczby zmiennoprzecinkowej 123.4567
określiliśmy specyfikator formatu ^-09.3f
. To są:
^
- Jest to opcja wyrównania do środka, która wyrównuje ciąg wyjściowy do środka pozostałej przestrzeni-
- Jest to opcja znaku, która wymusza wyświetlanie znaku tylko na liczbach ujemnych0
- Jest to znak, który jest umieszczany w miejscu pustych przestrzeni.9
- Jest to opcja szerokości, która ustawia minimalną szerokość liczby na 9 (w tym przecinek dziesiętny, tysiące przecinek i znak).3
- Jest to operator precyzji, który ustawia precyzję podanej liczby zmiennoprzecinkowej na 3 miejscaf
- Jest to opcja typu, która określa, że liczba jest liczbą zmiennoprzecinkową.
Przykład 3: Używanie format () przez zastąpienie __format __ ()
# custom __format__() method class Person: def __format__(self, format): if(format == 'age'): return '23' return 'None' print(format(Person(), "age"))
Wynik
23
Tutaj nadpisaliśmy __format__()
metodę klasy Person
.
Teraz przyjmuje format
parametr i zwraca 23, jeśli jest równy 'age'
. Jeśli nie określono formatu, None
zwracana jest wartość.
Funkcja format()
działa wewnętrznie, Person().__format__("age")
aby zwrócić 23.