Python Academy · Oppitunti

Template-merkkijonot ja str.format

Muita muotoilutyökaluja

Oppitunti 4/413 vaihetta

Template-merkkijonot ja str.format on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

Muut muotoilutyökalut

F-stringien lisäksi Python tarjoaa kaksi muuta muotoilutyökalua: str.format()-menetelmän ja string.Template-luokan. Kukin sopii erilaisiin tilanteisiin.

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

str.formatin perusteet

str.format() korvaa {}-paikanvaraajat argumenteilla niiden järjestyksessä. Se on f-stringejä vanhempi ja esiintyy edelleen paljon koodissa.

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

Sijaintiin perustuvat indeksit

Sijoittakaa aaltosulkeisiin numeroita, jotta voitte käyttää argumentteja uudelleen tai vaihtaa niiden järjestystä niiden sijainnin perusteella.

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

Nimetyt paikanvaraajat

Käyttäkää aaltosulkeiden sisällä nimiä ja välittäkää avainsana-argumentteja. Näin mallineet dokumentoivat itse itsensä.

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

Muotoilumääritteet toimivat edelleen

Sama minikieli toimii kaksoispisteen jälkeen myös str.format-menetelmässä, joten voitte hallita leveyttä, tarkkuutta ja tasausta.

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

Muotoilu sanakirjasta

Purkaa sanakirja str.format-kutsuun **-merkinnällä, jotta nimetyt paikanvaraajat täyttyvät.

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

Template-merkkijonot

string.Template käyttää $-pohjaisia paikanvaraajia. Se on tarkoituksella yksinkertainen ja turvallisempi käyttäjän antamille mallineille, koska se ei voi suorittaa mielivaltaisia lausekkeita.

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

Aaltosulkeet selkeyden vuoksi

Ympäröikää paikanvaraajan nimi aaltosulkeilla, kuten ${name}, kun se on muun tekstin vieressä.

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

safe_substitute

substitute nostaa KeyError-poikkeuksen puuttuvista nimistä. safe_substitute jättää tuntemattomat paikanvaraajat sen sijaan ennalleen.

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

Milloin mitäkin käytetään

Ohjeet: suosikaa f-stringejä jokapäiväisessä koodissa. Käyttäkää str.format-menetelmää, kun malline on erillään datasta. Käyttäkää Template-luokkaa epäluotettaville käyttäjän toimittamille mallineille.

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

Ulkoisesta tekstistä ladatut mallipohjat

Koska mallipohjan teksti on vain merkkijono, voitte ladata sen asetustiedostosta tai tietokannasta ja sijoittaa arvot paikoilleen suorituksen aikana.

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

Pikatarkistus

Mikä työkalu on turvallisin arvojen sijoittamiseen epäluotetun käyttäjän antamaan mallipohjaan?

Kertaus: mallipohjamerkkijonot ja str.format

Yhteenveto f-stringien vaihtoehdoista:

  • str.format() käyttää {}-paikkamerkkejä ja tukee sijaintiin perustuvia ja nimettyjä argumentteja sekä koko muotoilumäärittelyä.
  • string.Template käyttää $name-paikkamerkkejä ja on turvallinen epäluotettavan syötteen kanssa.
  • safe_substitute jättää tuntemattomat paikkamerkit paikoilleen.
  • Suosikaa tavallisessa koodissa f-stringejä ja käyttäkää näitä työkaluja, kun mallipohjat ovat ulkoisia tai epäluotettomia.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))
Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”Template-merkkijonot ja str.format” ilmainen?

Kyllä – oppitunnin ”Template-merkkijonot ja str.format” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Template-merkkijonot ja str.format”?

Muita muotoilutyökaluja Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Template-merkkijonot ja str.format”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. f-merkkijonojen lausekkeet
  2. Muotoilumääritteet
  3. Muotoilun minikieli
  4. Template-merkkijonot ja str.format
← Takaisin: Python Academy