Template-merkkijonot ja str.format
Muita muotoilutyökaluja
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.Templatekäyttää$name-paikkamerkkejä ja on turvallinen epäluotettavan syötteen kanssa.safe_substitutejä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))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
- f-merkkijonojen lausekkeet
- Muotoilumääritteet
- Muotoilun minikieli
- Template-merkkijonot ja str.format