본문 바로가기

카테고리 없음

Python f-string 와 str.format()에 대하여.

먼저 문자열 포매팅(formatting)이란,

한 마디로 말하자면 문자열 포매팅은 문자열에 어떤 값을 삽입하는 방법이다.

그리고 f-string 와 str.format()는 문자열 포매팅의 두가지 방식이다.

먼저 str.format()을 보자.

def some_drink(a,b):
    print(('I want some {} and {}.').format(a, b))
some_drink('milk','coffee')
# I want some mile and coffee.

그리고 f-string을 보자. 참고로 python 3.6 버전 이후부터 사용할 수 있다.

def some_drink(a,b):
    print(f'I want {a} and {b}.')
some_drink('milk','coffee')
# I want milk and coffee.

뭔 차이가 있냐? 에 대하여.

문제는 str.format()가 여러 매개변수와 긴 문자열을 처리할 때면 굉장히 머리 아프게 된다.

 

first_name = "Eric"
last_name = "Idle"
age = 74
profession = "comedian"
affiliation = "Monty Python"
print(("Hello, {first_name} {last_name}. You are {age}. " + 
       "You are a {profession}. You were a member of {affiliation}.") \
       .format(first_name=first_name, last_name=last_name, age=age, \
               profession=profession, affiliation=affiliation))
# Hello, Eric Idle. You are 74. You are a comedian. You were a member of Monty Python.

이걸 f-string 방식으로 해보자.

first_name = "Eric"
last_name = "Idle"
age = 74
profession = "comedian"
affiliation = "Monty Python"
print(f"Hello, {first_name} {last_name}. You are {age}." +
      f"You are a {profession}. You were a member of {affiliation}.")
# Hello, Eric Idle. You are 74.You are a comedian. You were a member of Monty Python

이렇게 보면 f-string이 훨씬 더 깔끔가고 가독성이 높은것을 알 수 있다.

이상.