Python | Utdataformatering

Python | Utdataformatering

I Python finns det flera sätt att presentera resultatet av ett program. Data kan skrivas ut i en läsbar form, eller skrivas till en fil för framtida användning, eller till och med i någon annan specificerad form. Användare vill ofta ha mer kontroll över formateringen av utdata än att bara skriva ut mellanslagsseparerade värden.

Utdataformatering i Python

Det finns flera sätt att formatera utdata med String Method in Pytonorm .

  • Använda String Modulo Operator (%)
  • Använder formatmetoden
  • Använder strängmetoden
  • Pythons regel för formatkonvertering

Formatera utdata med String Modulo Operator(%)

De % operatörsmodul kan också användas för strängformatering. Det tolkar det vänstra argumentet ungefär som ett printf()-format som i C-språksträngar som ska tillämpas på det högra argumentet. I Python finns det ingen printf()-funktion men funktionaliteten hos den antika printf finns i Pytonorm . För detta ändamål överbelastas modulo-operatorn % av strängklassen för att utföra strängformatering. Därför kallas det ofta en strängmodulo (eller ibland även kallad modulus) operator. Strängmodulooperatorn ( % ) är fortfarande tillgänglig i Python(3.x) och används flitigt. Men nuförtiden tas den gamla formateringsstilen bort från språket.

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 
Formatera utdata med String Modulo Operator(%)

Utdataformatering med Modulo Operator

Det finns två av dem i vårt exempel: %2d och %5.2f. Den allmänna syntaxen för en formatplatshållare är:

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

Låt oss ta en titt på platshållarna i vårt exempel.

  • Den första platshållaren '%2d' används för den första komponenten i vår tupel, d.v.s. heltal 1. Den kommer att skrivas ut med 2 tecken, och eftersom 1 bara består av en siffra, är utmatningen utfylld med 1 inledande blank.
  • Den andra platshållaren '%5.2f' är för ett flyttal. Precis som andra platshållare introduceras den med tecknet %. Den anger det totala antalet siffror strängen ska innehålla, inklusive decimalkomma och alla siffror, både före och efter decimalkomma.
  • Vårt flytnummer 05.333 är formaterat med 5 tecken och en precision på 2, betecknat med siffran efter '.' i platshållaren. Det sista tecknet 'f' indikerar att platshållaren representerar ett flytvärde.

Formatera utdata med formatmetoden

Metoden format() lades till i Python(2.6). Formatmetoden för strängar kräver mer manuell ansträngning. Användare använder {} för att markera var en variabel kommer att ersättas och kan ge detaljerade formateringsdirektiv, men användaren måste också tillhandahålla informationen som ska formateras. Denna metod låter oss sammanfoga element i en utdata genom positionsformatering. Till exempel -

Exempel 1: Koden förklarar olika Python-strängformateringstekniker. Värdena anges antingen uttryckligen eller hänvisas till i den ordning de visas i format()-proceduren.f-Strings möjliggör användning av krulliga klammerparenteser och f-prefixet för att bädda in uttryck i strängen bokstavliga ord. F-strängarnas uttryck bedöms och deras lämpliga värden ersätts 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 

Hakparenteserna och tecknen inom dem (kallas formatfält ) ersätts med objekten som skickas till format()-metoden. En siffra inom parentes kan användas för att referera till positionen för objektet som skickas till format()-metoden.

Exempel 2: Med hjälp av positionsparametrar och ett namngivet argument ('other') på den första raden läggs värdena 'Geeks', 'For' och 'Geeks' till i strängmallen. 'Geeks:12, Portal: 0,55′ skrivs ut, där det första värdet visas som ett 2-siffrigt heltal och det andra talet har 2 decimaler och en 8-bitars bredd. Format()-metodens namngivna argument, betecknade med specifika etiketter ('a' och 'p') för siffrorna '453' och '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öljande diagram med ett exempel på användningen visar hur formatmetoden fungerar för positionsparametrar:

Formatera utdata med formatmetoden

Utdataformatering med formatmetoden

Exempel 3: Koden visar hur man använder ordböcker med Pythons format()-metod. Ordbokens 'flik' i det första exemplet har nycklar och tillhörande värden. Metoden format() använder indexering för att lägga in värdena i strängmallen. I det andra exemplet används namngivna nycklar i en ordbok 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 

Formatera utdata med strängmetoden

Denna utdata formateras med hjälp av strängmetod dvs. skärnings- och sammanfogningsoperationer. Strängtypen har några metoder som hjälper till att formatera utdata på ett snyggare sätt. Några metoder som hjälper till att formatera en utdata är str.ljust() , str.rjust() , och 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> ,> '-'> ))>

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 regel för formatkonvertering

Den här tabellen listar riktlinjerna för standardformatkonvertering som används av Pythons format()-funktion.

Omvandling

Menande

d

Decimalt heltal

b

Binärt format

O

oktalt format

i

Föråldrad och likvärdig med 'd'

x eller X

Hexadecimalt format

e eller E

Exponentiell notation

f eller F

Flyttalsdecimal

g eller G

Allmänt format

c

Enstaka tecken

r

Strängformat (med repr())

s

Strängformat (med str()))

%

Procentsats