All Articles

Python - Literal string interpolation (f-string)

파이썬에서는 다양한 문자열 포맷팅 방법을 제공한다. 그 중 Python 3부터 지원하기 시작한 Literal string interpolation, 즉 f-string은 매우 직관적이고 간단하다.

f-string 구성

모든 f-string문은 다음 형태로 구성된다. 알파벳 f와 따옴표다.

# single quotes
f'포맷팅 원하는 문자열'

# double quotes
f"포맷팅 원하는 문자열"

문자열을 줄바꿈 그대로 출력하고 싶다면 triple quotes를 사용한다.

# triple quotes
f'''
포맷팅
원하는
문자열
'''

f-string 사용 예시

  1. 변수호출 변수에 값을 지정하고, 문자열 중 해당 값을 나타내고 싶은 부분에 {변수명}을 넣어준다.
name = "달"
age = "23"

print(f"안녕하세요, 제 이름은 {name}이고, {age}살입니다.")
# 출력값
안녕하세요, 제 이름은 달이고, 23살입니다.
  1. 다양한 표현식

2-1. 산수 연산

print(f"{10 * 3}")
# 출력값
30

2-2. 함수

def func(name):
    return "안녕하세요, 제 이름은 " + name + "입니다."

name = "달"
print(f"{func(name)}")
# 출력값
안녕하세요, 제 이름은 달입니다.

2-3. 딕셔너리

data = {
    "name" : "달",
    "age" : 23,
    "area" : "서울"
}

print(f"안녕하세요, 제 이름은 {data['name']}입니다. {data['age']}살이고, {data['area']}에 삽니다.")
# 출력값
안녕하세요, 제 이름은 달입니다. 23살이고, 서울에 삽니다.

딕셔너리 안 특정 키에 해당하는 값을 찾을 때는 딕셔너리이름["키 이름"] 으로 호출하므로, f-string에서도 같은 방식을 쓰면 된다. 하지만 주의할 점은 문자열을 큰 따옴표로 묶었다면 키 이름은 작은 따옴표로, 문자열을 작은 따옴표로 묶었다면 키 이름은 큰 따옴표로 묶어야 한다.

  1. 따옴표 출력
name = "달"

print(f"'안녕하세요, 제 이름은 '{name}'입니다.'")
# 출력값
'안녕하세요, 제 이름은 ''입니다.'

f-string을 묶어준 따옴표와 다른 따옴표를 쓸 경우엔 단순하다. 하지만 같은 따옴표를 쓸 때는 백슬래시를 이용한다.

print(f"\"안녕하세요, 제 이름은 \"{name}\"입니다.\"")
# 출력값
"안녕하세요, 제 이름은 ""입니다."

참고한 자료
https://www.datacamp.com/community/tutorials/f-string-formatting-in-python