Python | Outputformatering

Python | Outputformatering

I Python er der flere måder at præsentere output fra et program på. Data kan udskrives i en form, der kan læses af mennesker, eller skrives til en fil til fremtidig brug, eller endda i en anden specificeret form. Brugere ønsker ofte mere kontrol over formateringen af ​​output end blot at udskrive mellemrumsseparerede værdier.

Outputformatering i Python

Der er flere måder at formatere output ved hjælp af String Method in Python .

  • Brug af String Modulo Operator (%)
  • Brug af formatmetoden
  • Brug af strengmetoden
  • Pythons formatkonverteringsregel

Formatering af output ved hjælp af String Modulo Operator(%)

Det % operatørmodul kan også bruges til strengformatering. Det fortolker det venstre argument meget som et printf()-format som i C-sprogstrenge, der skal anvendes på det højre argument. I Python er der ingen printf() funktion, men funktionaliteten af ​​den gamle printf er indeholdt i Python . Til dette formål overbelastes modulo-operatoren % af strengklassen til at udføre strengformatering. Derfor kaldes det ofte en streng modulo (eller nogle gange endda kaldet modulus) operator. Strengmodulo-operatoren ( % ) er stadig tilgængelig i Python(3.x) og er meget brugt. Men i dag er den gamle formatering fjernet fra sproget.

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>

Produktion

Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02 
Formatering af output ved hjælp af String Modulo Operator(%)

Outputformatering ved hjælp af Modulo Operator

Der er to af dem i vores eksempel: %2d og %5.2f. Den generelle syntaks for en formatpladsholder er:

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

Lad os tage et kig på pladsholderne i vores eksempel.

  • Den første pladsholder '%2d' bruges til den første komponent i vores tuple, altså hele tallet 1. Det vil blive udskrevet med 2 tegn, og da 1 kun består af et ciffer, er output polstret med 1 indledende blank.
  • Den anden pladsholder '%5.2f' er for et flydende tal. Ligesom andre pladsholdere introduceres det med %-tegnet. Den angiver det samlede antal cifre, som strengen skal indeholde, inklusive decimalkommaet og alle cifrene, både før og efter decimalkommaet.
  • Vores flydenummer 05.333 er formateret med 5 tegn og en præcision på 2, angivet med tallet efter '.' i pladsholderen. Det sidste tegn 'f' angiver, at pladsholderen repræsenterer en flydende værdi.

Formatering af output ved hjælp af formatmetoden

Format()-metoden blev tilføjet i Python(2.6). Formatmetoden for strenge kræver mere manuel indsats. Brugere bruger {} til at markere, hvor en variabel vil blive erstattet og kan give detaljerede formateringsdirektiver, men brugeren skal også angive de oplysninger, der skal formateres. Denne metode lader os sammenkæde elementer i et output gennem positionsformatering. For eksempel -

Eksempel 1: Koden forklarer forskellige Python-strengformateringsteknikker. Værdierne er enten eksplicit leveret eller henvist til i den rækkefølge, de vises i i format() proceduren.f-Strings muliggør brugen af ​​krøllede klammeparenteser og f-præfikset til at indlejre udtryk i strengen bogstavelige. F-strengenes udtryk vurderes, og deres passende værdier erstattes med dem.

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'}'> )>

Produktion

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

Klammerne og tegnene i dem (kaldet format felter ) erstattes med de objekter, der overføres til format()-metoden. Et tal i parentes kan bruges til at henvise til positionen af ​​objektet, der er overført til format()-metoden.

Eksempel 2: Ved hjælp af positionelle parametre og et navngivet argument ('other') i den første linje tilføjes værdierne 'Geeks', 'For' og 'Geeks' til strengskabelonen.'Geeks:12, Portal: 0,55′ udskrives, hvor den første værdi vises som et 2-cifret heltal, og det andet tal har 2 decimaler og en 8-bit bredde. Format()-metodens navngivne argumenter, angivet med specifikke etiketter ('a' og 'p') for tallene '453' og '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> ))>

Produktion

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 

Følgende diagram med et eksempel på brug viser, hvordan formatmetoden fungerer for positionelle parametre:

Formatering af output ved hjælp af formatmetoden

Outputformatering ved hjælp af formatmetoden

Eksempel 3: Koden viser, hvordan man bruger ordbøger med Pythons format()-metode. Ordbogens 'faneblad' i det første eksempel har nøgler og tilhørende værdier. Format()-metoden bruger indeksering til at indsætte værdierne i strengskabelonen. I det andet eksempel bruges navngivne nøgler i en ordbog som data.

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))>

Produktion

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

Formatering af output ved hjælp af strengmetoden

Dette output formateres ved at bruge strengmetode dvs. udskærings- og sammenkædningsoperationer. Strengtypen har nogle metoder, der hjælper med at formatere output på en mere avanceret måde. Nogle metoder, der hjælper med at formatere et output er str.light() , str.rjust() , og str.center()

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> ,> '-'> ))>

Produktion

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

Pythons formatkonverteringsregel

Denne tabel viser retningslinjerne for standardformatkonvertering, der bruges af Pythons format()-funktion.

Konvertering

Betyder

d

Decimalt heltal

b

Binært format

O

oktal format

i

Forældet og svarer til 'd'

x eller X

Hexadecimalt format

e eller E

Eksponentiel notation

f eller F

Decimal med flydende komma

g eller G

Generelt format

c

Enkelt tegn

r

Strengformat (ved hjælp af repr())

s

String Format(bruger str()))

%

Procent