Python Academy · Lektion

Mallsträngar och str.format

Andra formateringsverktyg

Lektion 4 av 413 steg

Mallsträngar och str.format är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Andra verktyg för formatering

Utöver f-strängar erbjuder Python ytterligare två formateringsverktyg: metoden str.format() och klassen string.Template. De passar i olika situationer.

print('Hello, {}!'.format('World'))

Grunderna i str.format

str.format() ersätter platshållare som {} med argument i ordning. Metoden fanns före f-strängar och förekommer fortfarande i mycket kod.

msg = '{} is {} years old'.format('Ada', 36)
print(msg)

Positionsindex

Placera tal mellan klamrarna för att återanvända eller ändra ordningen på argument utifrån deras position.

print('{0} {1} {0}'.format('echo', 'once'))

Namngivna platshållare

Använd namn mellan klamrarna och skicka nyckelordsargument. Det gör mallarna självbeskrivande.

print('{name} scored {score}'.format(name='Lin', score=95))

Formatspecifikationer fungerar fortfarande

Samma minispråk fungerar efter ett kolon i str.format, så du kan styra bredd, precision och justering.

print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))

Formatera från en dictionary

Packa upp en dictionary i str.format med ** för att fylla i namngivna platshållare.

data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))

Introduktion till Template-strängar

string.Template använder platshållare baserade på $. Det är avsiktligt enkelt och säkrare för mallar som användare tillhandahåller, eftersom det inte kan köra godtyckliga uttryck.

from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))

Klamrar för tydlighet

Omge ett platshållarnamn med klamrar, till exempel ${name}, när det står intill annan text.

from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))

safe_substitute

substitute kastar KeyError för namn som saknas. safe_substitute lämnar i stället okända platshållare orörda.

from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))

När ska du använda vad?

Riktlinjer: föredra f-strängar i vardaglig kod. Använd str.format när mallen är separerad från datan. Använd Template för mallar som kommer från användare och inte är betrodda.

name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))

Mallar från extern text

Eftersom malltexten bara är en sträng kan ni läsa in den från en konfigurationsfil eller databas och sedan ersätta värden vid körning.

from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))

Snabbtest

Vilket verktyg är säkrast för att ersätta värden i en mall som tillhandahålls av en användare som inte är betrodd?

Sammanfattning: Mallsträngar och str.format

Sammanfattning av alternativen till f-strängar:

  • str.format() använder platshållare med {} och stöder positionella argument, namngivna argument och hela formatspecifikationen.
  • string.Template använder platshållare med $name och är säkert för ej betrodd indata.
  • safe_substitute låter okända platshållare vara kvar.
  • Föredra f-strängar i vanlig kod och använd dessa verktyg när mallarna är externa eller inte är betrodda.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Mallsträngar och str.format” gratis?

Ja – hela texten till ”Mallsträngar och str.format” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Mallsträngar och str.format”?

Andra formateringsverktyg Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Mallsträngar och str.format”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Uttryck i f-strängar
  2. Formateringsspecifikationer
  3. Formatets miniatyrspråk
  4. Mallsträngar och str.format
← Tillbaka till Python Academy