0Pricing
Python Academy · 강의

템플릿 문자열과 str.format

다른 서식 지정 도구 알아보기

템플릿 문자열과 str.format은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

기타 서식 지정 도구

f 문자열 외에도 파이썬에는 두 가지 서식 지정 도구가 더 있습니다. str.format() 메서드와 string.Template 클래스입니다. 각각 적합한 상황이 다릅니다.

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

str.format 기본 사항

str.format()은 중괄호 자리 표시자를 인수로 순서대로 대체합니다. f 문자열보다 먼저 도입되었으며 여전히 많은 코드에서 사용됩니다.

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

위치 인덱스

중괄호 안에 숫자를 넣으면 위치를 기준으로 인수를 재사용하거나 순서를 바꿀 수 있습니다.

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

이름이 있는 자리 표시자

중괄호 안에 이름을 사용하고 키워드 인수를 전달하십시오. 이렇게 하면 템플릿 자체만으로도 내용을 쉽게 이해할 수 있습니다.

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

서식 지정자는 여전히 적용됩니다

str.format에서는 콜론 뒤에 같은 미니 언어를 사용할 수 있으므로 너비, 정밀도, 정렬을 제어할 수 있습니다.

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

딕셔너리에서 서식 지정하기

**를 사용하여 딕셔너리를 str.format에 풀어 넣으면 이름이 있는 자리 표시자를 채울 수 있습니다.

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

Template 문자열 소개

string.Template은 $를 기반으로 하는 자리 표시자를 사용합니다. 의도적으로 단순하게 설계되었으며 임의의 표현식을 실행할 수 없기 때문에 사용자가 제공한 템플릿에 더 안전합니다.

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

명확성을 위한 중괄호

자리 표시자 이름이 다른 텍스트 바로 옆에 있을 때는 ${name}처럼 이름을 중괄호로 감싸십시오.

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

safe_substitute

substitute는 이름이 없으면 KeyError를 발생시킵니다. 반면 safe_substitute는 알 수 없는 자리 표시자를 그대로 둡니다.

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

무엇을 언제 사용할까요

지침은 다음과 같습니다. 일상적인 코드에는 f 문자열을 우선 사용하십시오. 템플릿을 데이터와 분리할 때는 str.format을 사용하십시오. 신뢰할 수 없거나 사용자가 제공한 템플릿에는 템플릿을 사용하십시오.

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

외부 텍스트에서 템플릿 사용하기

템플릿 텍스트는 그저 문자열이므로 구성 파일이나 데이터베이스에서 불러온 다음 실행 중에 값을 치환할 수 있습니다.

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

빠른 확인

신뢰할 수 없는 사용자가 제공한 템플릿에 값을 치환할 때 가장 안전한 도구는 무엇인가요?

요약: 템플릿 문자열과 str.format

f-string의 대안은 다음과 같습니다.

  • str.format()은 {} 자리 표시자를 사용하며, 위치 지정 방식, 이름 지정 방식, 전체 형식 지정 사양을 지원합니다.
  • string.Template은 $name 자리 표시자를 사용하며 신뢰할 수 없는 입력에 안전합니다.
  • safe_substitute는 알 수 없는 자리 표시자를 그대로 둡니다.
  • 일반 코드에는 f-string을 우선 사용하고, 템플릿이 외부에서 제공되거나 신뢰할 수 없을 때는 이러한 도구를 사용합니다.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))

자주 묻는 질문

“템플릿 문자열과 str.format” 강의는 무료인가요?

네 — “템플릿 문자열과 str.format” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“템플릿 문자열과 str.format”에서 뭘 배우나요?

다른 서식 지정 도구 알아보기 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“템플릿 문자열과 str.format” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. f-string 표현식
  2. 서식 지정자
  3. 서식 미니 언어
  4. 템플릿 문자열과 str.format
← Python Academy(으)로 돌아가기