Python String format() Forklar med EKSEMPLER

⚡ Smart oppsummering

Python String format() er en innebygd metode som erstatter plassholdere for krøllparenteser i en malstreng med angitte verdier. Plassholdere godtar tomme parenteser, posisjonsindekser eller nøkkelordnavn, og støtter spesifikatorer for tall, justering og utfyllingsformat for det endelige resultatet.

  • 🔤 Plassholdere: Krølleparenteser {} markerer hvor verdier skal plasseres – tomme, nummererte {0} eller navngitte {name}.
  • 🔢 Posisjonell og nøkkelord: format() fyller tomme klammeparenteser i rekkefølge, etter indeksposisjon eller ved å matche nøkkelordnavn.
  • 🎛️ Formatspesifikasjoner: Et kolon legger til koder som {:d}, {:b}, {:.2f} og {:x} for desimal-, binær-, fastpunkt- og heksadesimalutdata.
  • ↔️ Justering og polstring: Breddetall med {:^10} eller {:,} midtstil teksten, legg til avstand og sett inn tusenskilletegn.
  • 🧱 Objekter og ordbøker: Plassholdere leser klasseattributter med {c.attr} og ordbokverdier med {m[key]}.
  • 🤖 AI-hjelp: AI-kodingsassistenter genererer format()-kall og f-strengekvivalenter fra ledetekster i enkeltspråk.

Python Strengformat()

Hva er Python Strengformat()?

Python Strengformat() er en funksjon som brukes til å erstatte, erstatte eller konvertere strengen med plassholdere med gyldige verdier i den siste strengen. Det er en innebygd funksjon av Python string class, som returnerer den formaterte strengen som en utdata. Plassholderne inne i strengen er definert i krøllete parenteser.

For eksempel, «Velkommen til Guru99 {}”.format('verdi her').

Syntaks for format()-funksjonen i Python

templatestring.format(val1, val2...)

Parametre

val1, val2 … : Verdiene som må erstattes i den gitte malstrengen som har plassholdere i form av krøllede parenteser {}. Plassholderne kan være en streng, nøkkel/verdi-par, heltall, flytende tall, tegn osv.

Returverdi

Den vil returnere den siste strengen, med gyldige verdier erstattet i stedet for plassholderne gitt i krøllede parenteser.

Plassholdere

Plassholderne i malstrengen er representert ved hjelp av krøllede parenteser, f.eks. {}. Plassholderen kan være tom {}, eller den kan ha en variabel for f.eks. {navn} , eller den kan ha en tallindeks, f.eks. {0} , {1} osv.

Hvordan fungerer strengformat()?

Ocuco Python Strengformat() metoden vil skanne de originale strengene for plassholdere. Plassholderne kan være tomme krøllede parenteser ({}), posisjonsargumenter dvs. strengen kan ha plassholdere med indeks 0, 1 for f.eks. {0}, {1} osv.

For søkeordargumenter vil variabelnavnet være tilstede innenfor de krøllede parentesene for f.eks. {navn}, {alder}. I tilfelle av tomme parenteser, vil verdiene fra formatet bli erstattet innenfor de krøllede parentesene i rekkefølge.

Den første verdien vil bli erstattet med den første tomme krøllete parentesen, etterfulgt av den neste. For posisjonsargumenter vil indeksen starte fra 0 og så videre. Verdiene vil være tilgjengelige i format atskilt med komma og 0th verdi vil peke til den første verdien i formatet og så videre.

For søkeordargumenter, dvs. når du bruker en variabel i plassholderne dine, kan du ha rekkefølgen på verdiene i formatet etter behov.

Rekkefølgen spiller ingen rolle her siden verdiene vil bli erstattet basert på variabelnavnet som er tilstede i formatet(). Her er noen eksempler på hvordan du bruker plassholdere inne i en streng som tomme, posisjonelle og bruker nøkkelord eller variabler.

Eksempel: Tom plassholder erstattet med en strengverdi

I eksemplet nedenfor har strengen tomme krøllede parenteser({}). Verdien gitt til formatet vil bli erstattet innenfor de krøllede parentesene ({}).

Verdien som vi ønsker skal erstattes er en streng.

Eksempel:

Bruke strengformatering i Python, vi ønsker at krøllparentesene ({}) skal erstattes med en strengverdi. Verdien gis til format(“Guru99"). Ved utførelse erstattes de krøllparentesene {} med Guru99, og du vil få den siste strengen som Velkommen til Guru99 veiledninger.

print ("Welcome to {} tutorials".format("Guru99"))

Utgang:

Welcome to Guru99 tutorials

Eksempel: Tom plassholder erstattet med en numerisk verdi

I eksemplet nedenfor ønsker vi at den numeriske verdien skal erstattes inne i den opprinnelige strengen. De krøllede parentesene ({}) legges til stedet der du trenger den numeriske verdien. Når den kjøres, erstattes de tomme krøllede parentesene ({}) med den numeriske verdien.

Eksempel:

Du kan også bruke format() for å sette inn tall i strengen din. Eksemplet vil vise hvordan du erstatter den tomme plassholderen {} med nummer 99 i formatet().

print ("Welcome to Guru{} Tutorials".format("99"))

Utgang:

Welcome to Guru99 Tutorials

Eksempel: Bruk av variabel- eller nøkkelordargumenter inne i plassholderen

Det er også mulig å bruke variabler innenfor de krøllede parentesene, som vist i eksemplet nedenfor. Variablene er definert i format(). Derfor, når den kjøres, erstattes verdien som er tildelt variabelen inne i den opprinnelige strengen.

Eksempel:

Du kan bruke variabler i krøllparenteser, for eksempel {name} {num}. Verdiene for variabelen name og num er tilgjengelige i formatet, dvs. format(name=”Guru", num="99"). Verdiene gitt til name og num vil bli erstattet inni {name} og {num}.

print ("Welcome to {name}{num} Tutorials".format(name="Guru", num="99"))

Utgang:

Welcome to Guru99 Tutorials

Eksempel: Bruke indeks- eller posisjonsargumenter inne i plassholderen

Verdiene kan erstattes ved å bruke indekser som 0, 1, 2 inne i plassholderne. Verdien vil bli plukket i rekkefølge fra formatet(), som vist i eksemplet nedenfor.

Eksempel:

print ("Welcome to {0}{1} Tutorials".format("Guru","99"))

Utgang:

Welcome to Guru99 Tutorials

Eksempel: Bruk av flere plassholdere inne i en streng

I dette eksemplet skal vi bruke flere tomme plassholdere.

Eksempel:

Strengen som brukes i eksemplet har flere tomme plassholdere, og hver plassholder vil referere til en verdi i format() . Den første verdien vil bli erstattet for den første plassholderen og så videre.

print ("{} is {} new kind of {} experience!".format("Guru99", "totally","learning"))

Utgang:

Guru99 is totally new kind of learning experience!

Formatering inne i plassholdere

Du har sett at det er mulig å ha Plassholder som tom, med en variabel eller en indeks. Det er også mulig at du kan søke Python Strengformatering inne i plassholderen.

Her er listen over formater

dannet Tekniske beskrivelser Eksempel
:d Det vil gi utdata i desimalformat når det brukes inne i plassholderen print("The binary to decimal value is : {:d}".format(0b0011))

Utgang:

The binary to decimal value is  : 3
:b Det vil gi utdata i binært format når det brukes inne i plassholderen print("The binary value is : {:b}".format(500))

Utgang:

The binary value is : 111110100
:e Det vil gi utdata i vitenskapelig format når det brukes inne i plassholderen, eksponenten e i utdata vil være små bokstaver. print("The scientific value is : {:e}".format(40))

Utgang:

The scientific format value is : 4.000000e+01
:E Det vil gi utdata i vitenskapelig format når det brukes inne i plassholderen, eksponenten E i utdataene vil være store bokstaver print("The scientific value is : {:E}".format(40))

Utgang:

The scientific value is : 4.000000E+01
:f Dette vil sende ut et fastpunktnummerformat. Som standard vil du få utdata av et hvilket som helst tall med seks desimaler. Hvis du trenger opptil 2 desimaler, bruk det som. 2f dvs. et punktum (.) foran 2f print("The value is : {:f}".format(40))

Utgang:

The value is  : 40.000000

Eksempel: Viser utdata opp til 2 desimaler.

print("The value is : {:.2f}".format(40))

Utgang:

The value is: 40.00
:o Dette vil gi ut oktalt format print("The value is : {:o}".format(500))

Utgang:

The value is  : 764
:x Dette vil sende ut hex-format med små bokstaver print("The value is : {:x}".format(500))

Utgang:

The value is  : 1f4
:X Dette vil sende ut hex-format med store bokstaver. print("The value is : {:X}".format(500))

Utgang:

The value is  : 1F4
:n Dette vil gi ut tallformat. print("The value is : {:n}".format(500.00))

Utgang:

The value is  : 500
:% Dette vil gi utdata i et prosentformat.
Som standard vil det gi 6 desimaler for den prosentvise produksjonen, i tilfelle du ikke vil ha noen desimalverdi kan du bruke punktum med 0 dvs. (:.0%).
print("The value is : {:%}".format(0.80))

Utgang:

The value is  : 80.000000%

Dette eksemplet viser hvordan du hopper over desimalene ved å bruke {:.0%} inne i plassholderen.

print("The value is : {:.0%}".format(0.80))
Utgang:

The value is: 80%
:_ Dette vil skrive ut en understreking som tusenseparator. Den er tilgjengelig fra python 3.6+. print("The value is {:_}".format(1000000))

Utgang:

The value is  : 1_000_000
:, Dette vil skrive ut komma som et tusenskilletegn print("The value is : {:,}".format(1000000))

Utgang:

The value is  : 1,000,000

Kommaet(,) legges til , som tusenskilletegn som vist i utdataene.

: Dette vil legge til et mellomrom før eventuelle positive tall Dette eksemplet viser hvordan du legger til mellomrom eller utfylling før det gitte tallet. Tallet 5 angir mellomromtellingen du ønsker før tallet.

print("The value is: {:5}".format(40))

Utgang:

The value is:    40
:- Dette vil legge til et minustegn før negative tall Eksemplet viser hvordan du får utdata med et minustegn (-) foran tallet ved å bruke {:-}.

print("The value is: {:-}".format(-40))

Utgang:

The value is: -40
:+ Du kan bruke plusstegnet for å indikere at tallet er positivt Eksemplet viser hvordan du får utdata med et plusstegn (+) foran tallet ved å bruke {:+}.

print("The value is: {:+}".format(40))

Utgang:

The value is: +40
:= Lik brukes til å plassere +/- tegnet på venstre side. Eksemplet viser hvordan du får utdata med et pluss (+/-)-tegn før lik-tegn ved å bruke {:=}.

print("The value is {:=}".format(-40))

Utgang:

The value is -40
:^ Dette vil sentrere det endelige resultatet Eksemplet viser å bruke {:^} for å sentrere teksten. Tallet 10 brukes til å legge til 10 mellomrom for å vise senterjustert når verdien erstattes.

print("The value {:^10} is positive value".format(40))

Utgang:

The value     40     is a positive value

Her kan du bruke 10 som vil legge til 10 mellomrom i den endelige teksten, og verdien som skal erstattes vil være midtstilt mellom de 10 mellomrommene. Mellomrommene på 10 legges til bare for å vise senterjusteringen av den erstattede verdien.

:> Dette vil høyrejustere det endelige resultatet Mellomrommet på 10 legges til ved å bruke (:>10), og verdien som erstattes er høyrejustert.

print("The value {:>10} is positive value".format(40))

Utgang:

The value         40 is positive value
:< Dette vil venstrejustere det endelige resultatet Mellomrommet på 10 legges til ved å bruke (:<10), og verdien erstattes venstrejustert.

print("The value {:<10} is positive value".format(40))

Utgang:

The value 40         is positive value

Bruke klasse med format()

I dette eksemplet lager vi en klasse og bruker objektet til klassen i .formatet Python metode. Plassholderne vil referere til klasseegenskaper eller medlemmer som bruker klasseobjektet.

Eksempel:

Klassen kalles inne i formatet(c=MyClass()). Objektet c vil ha referansen til egenskapene og metodene inne i klassen MyClass().

class MyClass:
    msg1="Guru"
    msg2="Tutorials"   

print("Welcome to {c.msg1}99 {c.msg2}!".format(c=MyClass()))

Utgang:

Welcome to Guru99 Tutorials!

Bruke ordbok med format()

Det er også mulig å bruke ordbok i format() som vist i eksemplet nedenfor:

my_dict = {'msg1': "Welcome", 'msg2': 'Guru99'}
print("{m[msg1]} to {m[msg2]} Tutorials!".format(m=my_dict))

Utgang:

Welcome to Guru99 Tutorials!

Utfylling av variable erstatninger

Ved å bruke string.format()-metoden kan du legge til polstring, mellomrom ved å bruke plassholdere inne i strengen.

Eksempel:

I eksemplet nedenfor vil det legges til plass inne i plassholderen ved å bruke formatet(). For å legge til mellomrom, må du spesifisere antall mellomrom innenfor krøllede parenteser etter kolon(:). Så plassholderen vil se ut som {:5}.

print("I have {:5} dogs and {:5} cat".format(2,1))

Utgang:

I have     2 dogs and     1 cat

Du kan også gi indeksen inne i plassholderen for eksempel: {0:5} hvor 0 vil referere til den første verdien i formatet.

print("I have {0:5} dogs and {1:5} cat".format(2,1))

Utgang:

I have     2 dogs and     1 cat

Spørsmål og svar

f-strenger, lagt til i Python 3.6, legg inn uttrykk direkte og kjører vanligvis raskere. format()-metoden fungerer fortsatt på eldre Python versjoner og når malen kommer fra en variabel, fil eller brukerinndata.

%-operatoren bruker printf-stilsymboler som %s og %d, mens format() bruker plassholdere med krøllparenteser som støtter navn, indekser og mer omfattende spesifikatorer. Den renere håndteringen av omorganisering og layout er grunnen til at format() erstattet % i moderne kode.

Double tannreguleringen for å unnslippe dem. Takk.ping to åpningsparenteser skriver ut én bokstavelig parentes, og to avsluttende parenteser skriver ut én avsluttende parentes, slik at en ekte plassholder fortsatt fungerer ved siden av de bokstavelige parentesene i samme malstreng.

En manglende posisjonsverdi gir IndexError, og et manglende nøkkelord eller ordlistenavn gir KeyError. Det er tillatt å sende inn flere verdier enn plassholdere, og det ignoreres rett og slett ekstraverdiene, så bare fraværende referanser, ikke overflødige, forårsaker en feil.

format()-metoden fungerer i Python 2.6 og hver Python 3 utgivelse. Automatisk feltnummerering, der klammeparenteser forblir tomme i stedet for å skrive {0} {1}, trenger Python 2.7 eller 3.1 og senere.

Nei. Python Strenger er uforanderlige, så format() bygger og returnerer en helt ny streng mens malen forblir uendret. Tilordne resultatet til en variabel, for eksempel message = template.format(value), for å beholde den formaterte teksten til senere bruk.

Maskinlæringskode bruker format() til å bygge lesbare logger, sette sammen ledetekstmaler for språkmodeller og skrive ut målinger som nøyaktighet til faste desimaler. Rent formatert utdata gjør det enklere å sammenligne eksperimenter og modellrapporter.

Ja. GitHub Copilot fullfører format()-kall og deres spesifikatorer automatisk fra en kort kommentar som beskriver ønsket utdata. Agentic AI-assistenter går lenger, konverterer format() til f-strenger, fikser justering og kjører testene dine automatisk.

Oppsummer dette innlegget med: