Pythona | Formatowanie wyjściowe

Pythona | Formatowanie wyjściowe

W Pythonie istnieje kilka sposobów prezentowania wyników działania programu. Dane można wydrukować w formie czytelnej dla człowieka, zapisać w pliku do wykorzystania w przyszłości, a nawet w innej określonej formie. Użytkownicy często chcą mieć większą kontrolę nad formatowaniem wyników niż zwykłe drukowanie wartości oddzielonych spacjami.

Formatowanie wyjściowe w Pythonie

Istnieje kilka sposobów formatowania danych wyjściowych przy użyciu metody String w Pyton .

  • Korzystanie z operatora String Modulo (%)
  • Korzystanie z metody formatowania
  • Korzystanie z metody ciągów
  • Reguła konwersji formatu w Pythonie

Formatowanie danych wyjściowych za pomocą operatora String Modulo (%)

The % moduł operatora może być również używany do formatowania ciągów. Interpretuje lewy argument podobnie jak format w stylu printf(), jak w ciągach języka C, które należy zastosować do prawego argumentu. W Pythonie nie ma funkcji printf(), ale zawarta jest w niej funkcjonalność starożytnego printf Pyton . W tym celu operator modulo % jest przeciążany przez klasę string w celu wykonania formatowania stringu. Dlatego często nazywa się go operatorem modulo (lub czasami nawet modułem) na łańcuchach. Operator łańcuchowy modulo ( % ) jest nadal dostępny w Pythonie (3.x) i jest powszechnie używany. Ale obecnie stary styl formatowania został usunięty z języka.

Python3




# Python program showing how to use string modulo operator(%)> print> (> 'Geeks : %2d, Portal : %5.2f'> %> (> 1> ,> 05.333> ))> print> (> 'Total students : %3d, Boys : %2d'> %> (> 240> ,> 120> ))> # print integer value> print> (> '%7.3o'> %> (> 25> ))> # print octal value> print> (> '%10.3E'> %> (> 356.08977> ))> # print exponential value>

Wyjście

Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02 
Formatowanie danych wyjściowych za pomocą operatora String Modulo (%)

Formatowanie wyjściowe przy użyciu operatora Modulo

W naszym przykładzie są dwa takie: %2d i %5.2f. Ogólna składnia symbolu zastępczego formatu jest następująca:

 %[flags][width][.precision]type 

Przyjrzyjmy się symbolom zastępczym w naszym przykładzie.

  • Pierwszy symbol zastępczy „%2d” jest używany dla pierwszego składnika naszej krotki, tj. liczby całkowitej 1. Zostanie ona wydrukowana z 2 znakami, a ponieważ 1 składa się tylko z jednej cyfry, dane wyjściowe są dopełniane 1 spacją na początku.
  • Drugi symbol zastępczy „%5.2f” jest liczbą zmiennoprzecinkową. Podobnie jak inne symbole zastępcze, jest on wprowadzany znakiem %. Określa całkowitą liczbę cyfr, jakie powinien zawierać ciąg, łącznie z przecinkiem dziesiętnym i wszystkimi cyframi, zarówno przed, jak i po przecinku.
  • Nasz numer zmiennoprzecinkowy 05.333 jest sformatowany przy użyciu 5 znaków i dokładności do 2, oznaczonych liczbą występującą po „.” w symbolu zastępczym. Ostatni znak „f” wskazuje, że symbol zastępczy reprezentuje wartość zmiennoprzecinkową.

Formatowanie danych wyjściowych przy użyciu metody formatowania

Metoda format() została dodana w Pythonie(2.6). Metoda formatowania ciągów wymaga więcej wysiłku ręcznego. Użytkownicy używają {} do zaznaczenia miejsca, w którym zmienna zostanie zastąpiona i mogą podać szczegółowe wytyczne dotyczące formatowania, ale użytkownik musi także podać informacje, które mają zostać sformatowane. Ta metoda pozwala nam łączyć elementy w wyniku poprzez formatowanie pozycyjne. Na przykład -

Przykład 1: Kod wyjaśnia różne techniki formatowania ciągów znaków w języku Python. Wartości są albo podawane jawnie, albo odwołują się do nich w kolejności, w jakiej pojawiają się w procedurze format(). Ciągi f umożliwiają użycie nawiasów klamrowych i przedrostka f w celu osadzenia wyrażeń w ciągu literały. Oceniane są wyrażenia f-Strings i zastępowane są ich odpowiednimi wartościami.

Python3




print> (> 'I love {} for '{}!''> .> format> (> 'Geeks'> ,> 'Geeks'> ))> # using format() method and referring a position of the object> print> (> '{0} and {1}'> .> format> (> 'Geeks'> ,> 'Portal'> ))> print> (> '{1} and {0}'> .> format> (> 'Geeks'> ,> 'Portal'> ))> print> (f> 'I love {'Geeks'} for '{'Geeks'}!''> )> # using format() method and referring a position of the object> print> (f> '{'Geeks'} and {'Portal'}'> )>

Wyjście

I love Geeks for 'Geeks!' Geeks and Portal Portal and Geeks I love Geeks for 'Geeks!' Geeks and Portal 

Nawiasy i znajdujące się w nich znaki (tzw formatuj pola ) są zastępowane obiektami przekazanymi do metody format(). Liczby w nawiasach mogą odnosić się do pozycji obiektu przekazanej do metody format().

Przykład 2: Za pomocą parametrów pozycyjnych i nazwanego argumentu („other”) w pierwszym wierszu wartości „Geeks”, „For” i „Geeks” są dodawane do szablonu ciągu znaków.'Geeks:12, Portal: 0.55′ jest drukowana, przy czym pierwsza wartość jest wyświetlana jako 2-cyfrowa liczba całkowita, a druga liczba ma 2 miejsca po przecinku i 8-bitową szerokość. Nazwane argumenty metody format(), oznaczone specjalnymi etykietami („a” i „p”) dla liczb „453” i „59.058”,

Python3




# combining positional and keyword arguments> print> (> 'Number one portal is {0}, {1}, and {other}.'> > .> format> (> 'Geeks'> ,> 'For'> , other> => 'Geeks'> ))> # using format() method with number> print> (> 'Geeks :{0:2d}, Portal :{1:8.2f}'> .> > format> (> 12> ,> 00.546> ))> # Changing positional argument> print> (> 'Second argument: {1:3d}, first one: {0:7.2f}'> .> > format> (> 47.42> ,> 11> ))> print> (> 'Geeks: {a:5d}, Portal: {p:8.2f}'> .> > format> (a> => 453> , p> => 59.058> ))>

Wyjście

Number one portal is Geeks, For, and Geeks. Geeks :12, Portal : 0.55 Second argument: 11, first one: 47.42 Geeks: 453, Portal: 59.06 

Poniższy diagram z przykładem użycia przedstawia działanie metody format dla parametrów pozycyjnych:

Formatowanie danych wyjściowych przy użyciu metody formatowania

Formatowanie wyjściowe przy użyciu metody Format

Przykład 3: Kod pokazuje, jak używać słowników za pomocą metody format() języka Python. Zakładka słownika w pierwszym przykładzie zawiera klucze i powiązane wartości. Metoda format() wykorzystuje indeksowanie do umieszczenia wartości w szablonie ciągu. W drugim przykładzie nazwane klucze w słowniku są używane jako dane.

Python3




tab> => {> 'geeks'> :> 4127> ,> 'for'> :> 4098> ,> 'geek'> :> 8637678> }> # using format() in dictionary> print> (> 'Geeks: {0[geeks]:d}; For: {0[for]:d}; '> > 'Geeks: {0[geek]:d}'> .> format> (tab))> data> => dict> (fun> => 'GeeksForGeeks'> , adj> => 'Portal'> )> print> (> 'I love {fun} computer {adj}'> .> format> (> *> *> data))>

Wyjście

Geeks: 4127; For: 4098; Geeks: 8637678 I love GeeksForGeeks computer Portal 

Formatowanie danych wyjściowych przy użyciu metody String

To wyjście jest formatowane przy użyciu metoda stringowa, tj. operacje krojenia i łączenia. Typ string ma kilka metod, które pomagają w bardziej wyszukanym formatowaniu danych wyjściowych. Niektóre metody pomagające w formatowaniu danych wyjściowych to str.światło() , str.rjust() , I str.centre()

Python3




cstr> => 'I love geeksforgeeks'> # Printing the center aligned string with fillchr> print> (> 'Center aligned string with fillchr: '> )> print> (cstr.center(> 40> ,> '#'> ))> # Printing the left aligned string with '-' padding> print> (> 'The left aligned string is : '> )> print> (cstr.ljust(> 40> ,> '-'> ))> # Printing the right aligned string with '-' padding> print> (> 'The right aligned string is : '> )> print> (cstr.rjust(> 40> ,> '-'> ))>

Wyjście

Center aligned string with fillchr: ##########I love geeksforgeeks########## The left aligned string is : I love geeksforgeeks-------------------- The right aligned string is : --------------------I love geeksforgeeks 

Reguła konwersji formatu w Pythonie

W poniższej tabeli wymieniono standardowe wytyczne dotyczące konwersji formatu używane przez funkcję format() języka Python.

Konwersja

Oznaczający

D

Dziesiętna liczba całkowita

B

Format binarny

O

formacie ósemkowym

W

Przestarzałe i równoważne „d”

x lub X

Format szesnastkowy

e lub E

Notacja wykładnicza

f lub F

Dziesiętny zmiennoprzecinkowy

g lub G

Ogólny format

C

Pojedynczy znak

R

Format ciągu (przy użyciu repr())

S

Format ciągu (przy użyciu str()))

%

Odsetek