logo

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

jak znaleźć rozmiar monitora