Template-metoden

Reguljära uttryck i Python

Maria Eugenia Inzaugarat

Data Scientist

Template-strängar

  • Enklare syntax
  • Långsammare än f-strängar
  • Begränsad: stöder inte formatspecificerare
  • Passar när du arbetar med externt formaterade strängar
Reguljära uttryck i Python

Grundläggande syntax

from string import Template

my_string = Template('Data science has been called $identifier')
my_string.substitute(identifier="sexiest job of the 21st century")
'Data science has been called sexiest job of the 21st century'
Reguljära uttryck i Python

Substitution

  • Använd flera $identifier
  • Använd variabler
from string import Template
job = "Data science"
name = "sexiest job of the 21st century"

my_string = Template('$title has been called $description')
my_string.substitute(title=job, description=name)
'Data science has been called sexiest job of the 21st century'
Reguljära uttryck i Python

Substitution

  • Använd ${identifier} när giltiga tecken följer efter identifieraren

 

my_string = Template('I find Python very ${noun}ing but my sister has lost $noun')

my_string.substitute(noun="interest")
'I find Python very interesting but my sister has lost interest'
Reguljära uttryck i Python

Substitution

  • Använd $$ för att undanta dollartecknet

 

my_string = Template('I paid for the Python course only $$ $price, amazing!')

my_string.substitute(price="12.50")
'I paid for the Python course only $ 12.50, amazing!'
Reguljära uttryck i Python

Substitution

  • Utlöser ett fel om en platshållare saknas
favorite = dict(flavor="chocolate")

my_string = Template('I love $flavor $cake very much')
my_string.substitute(favorite)
Traceback (most recent call last):
KeyError: 'cake'
Reguljära uttryck i Python

Substitution

favorite = dict(flavor="chocolate")
my_string = Template('I love $flavor $cake very much')
try:
    my_string.substitute(favorite) 
except KeyError:
      print("missing information")
missing information
Reguljära uttryck i Python

Säker substitution

  • Försöker alltid returnera en användbar sträng
  • Saknade platshållare visas kvar i den resulterande strängen
favorite = dict(flavor="chocolate")
my_string = Template('I love $flavor $cake very much')

my_string.safe_substitute(favorite)
'I love chocolate $cake very much'
Reguljära uttryck i Python

Vilken ska jag använda?

  • str.format():

    • Bra startpunkt. Begreppen gäller även f-strängar.
    • Kompatibel med alla versioner av Python.
  • f-strängar:

    • Rekommenderas alltid framför övriga metoder.
    • Kräver moderna versioner av Python (3.6+).
  • Template-strängar:

    • Passar när du arbetar med externa eller användardefinierade strängar
Reguljära uttryck i Python

Nu kör vi en övning!

Reguljära uttryck i Python

Preparing Video For Download...