logo

Python | Utdataformatering

I Python er det flere måter å presentere resultatet av et program på. Data kan skrives ut i en menneskelig lesbar form, eller skrives til en fil for fremtidig bruk, eller til og med i en annen spesifisert form. Brukere ønsker ofte mer kontroll over formateringen av utdata enn bare å skrive ut mellomromseparerte verdier.

Utdataformatering i Python

Det er flere måter å formatere utdata ved å bruke String Method in Python .



  • Bruke String Modulo Operator (%)
  • Bruke formatmetoden
  • Bruke strengmetoden
  • Pythons regel for formatkonvertering

Formatere utdata ved hjelp av String Modulo Operator (%)

De % operatørmodul kan også brukes til strengformatering. Det tolker det venstre argumentet omtrent som et printf()-format som i C-språkstrenger som skal brukes på det høyre argumentet. I Python er det ingen printf()-funksjon, men funksjonaliteten til den gamle printf er inneholdt i Python . Til dette formålet blir modulo-operatoren % overbelastet av strengklassen for å utføre strengformatering. Derfor kalles det ofte en strengmodulo (eller noen ganger til og med kalt modulus) operatør. Strengen modulo-operatoren ( % ) er fortsatt tilgjengelig i Python(3.x) og er mye brukt. Men i dag er den gamle formateringsstilen fjernet fra 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>

>

>

Produksjon

Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02>
Formatere utdata ved hjelp av String Modulo Operator (%)

Utdataformatering med Modulo Operator

Det er to av dem i vårt eksempel: %2d og %5.2f. Den generelle syntaksen for en formatplassholder er:

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

La oss ta en titt på plassholderne i vårt eksempel.

  • Den første plassholderen «%2d» brukes for den første komponenten i tuppelen vår, det vil si heltall 1. Det vil bli skrevet ut med 2 tegn, og siden 1 består av bare ett siffer, er utgangen polstret med 1 innledende blank.
  • Den andre plassholderen «%5.2f» er for et flyttall. Som andre plassholdere introduseres den med %-tegnet. Den spesifiserer det totale antallet sifre strengen skal inneholde, inkludert desimaltegnet og alle sifrene, både før og etter desimaltegnet.
  • Vårt flytnummer 05.333 er formatert med 5 tegn og en presisjon på 2, angitt med tallet etter '.' i plassholderen. Det siste tegnet 'f' indikerer at plassholderen representerer en flyteverdi.

Formatere utdata ved hjelp av formatmetoden

Format()-metoden ble lagt til i Python(2.6). Formatmetoden for strenger krever mer manuell innsats. Brukere bruker {} for å markere hvor en variabel skal erstattes og kan gi detaljerte formateringsdirektiver, men brukeren må også oppgi informasjonen som skal formateres. Denne metoden lar oss sette sammen elementer i en utgang gjennom posisjonsformatering. For eksempel -

Eksempel 1: Koden forklarer ulike Python-strengformateringsteknikker. Verdiene er enten eksplisitt oppgitt eller referert til i rekkefølgen de vises i format()-prosedyren.f-Strings muliggjør bruk av krøllete klammeparenteser og f-prefikset for å bygge inn uttrykk i strengen bokstavelig. F-strengenes uttrykk vurderes og deres passende verdier 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'}'>)>

>

>

Produksjon

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

Klameparentesene og tegnene i dem (kalt formatfelt ) erstattes med objektene som sendes inn i format()-metoden. Et tall i parentes kan brukes til å referere til posisjonen til objektet som sendes inn i format()-metoden.

Eksempel 2: Ved hjelp av posisjonsparametere og et navngitt argument ('annet') i den første linjen, blir verdiene 'Geeks', 'For' og 'Geeks' lagt til i strengmalen.'Geeks:12, Portal: 0,55′ skrives ut, med den første verdien som et 2-sifret heltall og det andre tallet har 2 desimaler og en 8-biters bredde. Format()-metodens navngitte argumenter, angitt med spesifikke 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>))>

>

cloud computing-applikasjoner
>

Produksjon

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 eksempelbruk viser hvordan formatmetoden fungerer for posisjonsparametere:

Formatere utdata ved hjelp av formatmetoden

Utdataformatering ved hjelp av formatmetoden

Eksempel 3: Koden viser hvordan du bruker ordbøker med Pythons format()-metode. Ordbokens 'fane' i det første eksemplet har nøkler og tilhørende verdier. Format()-metoden bruker indeksering for å sette verdiene inn i strengmalen. I det andre eksemplet brukes navngitte nøkler 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))>

>

itererende kart java
>

Produksjon

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

Formatere utdata ved hjelp av strengmetoden

Denne utgangen er formatert ved å bruke strengmetode dvs. skjærings- og sammenkoblingsoperasjoner. Strengetypen har noen metoder som hjelper til med å formatere utdata på en mer avansert måte. Noen metoder som hjelper med å formatere en utgang er str.light() , str.rjust() , og str.senter()

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

>

>

Produksjon

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 for formatkonvertering

Denne tabellen viser retningslinjene for standardformatkonvertering som brukes av Pythons format()-funksjon.

Omdannelse

Betydning

d

Desimal heltall

b

Binært format

O

oktalt format

i

Foreldet og tilsvarende 'd'

x eller X

Heksadesimalt format

e eller E

Eksponentiell notasjon

f eller F

Flytende komma desimal

g eller G

Generelt format

c

Enkelt tegn

r

Strengformat (bruker repr())

s

String Format(bruker str()))

%

Prosentdel