템플릿 방식

Python 정규 표현식

Maria Eugenia Inzaugarat

Data Scientist

템플릿 문자열

  • 더 간단한 문법
  • f-strings보다 느림
  • 제한적: 포맷 지정자를 허용하지 않음
  • 외부에서 포맷된 문자열을 다룰 때 적합
Python 정규 표현식

기본 문법

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'
Python 정규 표현식

치환

  • $identifier를 여러 번 사용
  • 변수 사용
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'
Python 정규 표현식

치환

  • 식별자 뒤에 유효한 문자가 오는 경우 ${identifier}를 사용

 

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'
Python 정규 표현식

치환

  • 달러 기호를 이스케이프하려면 $$ 사용

 

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!'
Python 정규 표현식

치환

  • 플레이스홀더가 없으면 오류 발생
favorite = dict(flavor="chocolate")

my_string = Template('I love $flavor $cake very much')
my_string.substitute(favorite)
Traceback (most recent call last):
KeyError: 'cake'
Python 정규 표현식

치환

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
Python 정규 표현식

안전한 치환

  • 항상 사용 가능한 문자열을 반환하려고 시도
  • 누락된 플레이스홀더는 결과 문자열에 그대로 나타남
favorite = dict(flavor="chocolate")
my_string = Template('I love $flavor $cake very much')

my_string.safe_substitute(favorite)
'I love chocolate $cake very much'
Python 정규 표현식

어떤 방식을 사용해야 할까요?

  • str.format():

    • 처음 시작하기 좋으며, 개념이 f-strings에도 적용됨
    • 모든 Python 버전과 호환
  • f-strings:

    • 항상 다른 모든 방식보다 권장됨
    • Python 최신 버전(3.6 이상)에서만 사용 가능
  • 템플릿 문자열:

    • 외부 또는 사용자 제공 문자열을 다룰 때
Python 정규 표현식

연습해 봅시다!

Python 정규 표현식

Preparing Video For Download...