본문 바로가기
빅데이터분석

[헷갈리는 파이썬] f-string과 문자열 format 메서드의 차이점은? 문자열 내 변수 삽입

by 모닥불🔥 2024. 7. 25.

강의를 듣다가 문자열 format을 배웠다. 이전에 다른 강의를 들을 땐 f-string이라는 걸 배웠고...
기능이 똑같은 것 같은데 왜 다르게 가르쳐주는 건지 궁금하기도 하여 챗 GPT에게 물어 찾아보았다.

 

Python에서 f-string과 문자열 format 메서드는 모두 문자열 내에 변수를 포함시키기 위한 주요 방법이다. 

 

🔥 f-string (포맷된 문자열 리터럴)

  • f-string은 Python 3.6부터 도입된 방식이다.
  • 문자열 앞에 'f' 또는 'F'를 붙여 사용한다.
  • 중괄호 {} 안에 변수를 직접 넣어 문자열을 작성한다.

아래 예시와 같이 사용한다.

name = "Alice"
age = 30
info = f"My name is {name} and I am {age} years old."
print(info)

 

출력 결과: My name is Alice and I am 30 years old.

 

🔥 문자열 format 메서드

  • 문자열 format 메서드는 Python 2.7과 3.0부터 사용할 수 있었다. 
  • 중괄호 {}를 이용해 문자열을 작성하고, 
  • format() 메서드를 호출하여 변수 값을 지정한다.

아래 예시와 같이 사용한다.

name = "Alice"
age = 30
info = "My name is {} and I am {} years old.".format(name, age)
print(info)

 

출력 결과: My name is Alice and I am 30 years old.

 

결과는 f-string이나 문자열 format 메서드나 동일하게 나온다.

 

🔥 주요한 차이점을 알아보자.

1. 가독성

f-string은 코드가 간결하고 읽기 쉽다.

변수명을 중괄호 안에 직접 작성하기 때문에 어떤 값이 출력되는지 한눈에 알 수 있다.

format 메서드는 조금 더 길어질 수 있으며, 가독성이 떨어질 수 있다.

 

2. 성능(처리 속도 면에서)

f-string은 런타임에 문자열을 처리하므로 일반적으로 format 메서드보다 빠르다.

 

3. 표현식 사용 가능 여부

f-string은 중괄호 안에 표현식을 사용할 수 있어 더욱 유연하다.

예를 들면, 아래와 같이 곱셈 표현식을 그냥 중괄호 안에 바로 넣어버릴 수 있다.

width = 10
height = 5
area = f"The area is {width * height}."
print(area)

 

반면 문자열 format 메서드는 단순히 변수 삽입 기능만 가지고 있다고는 하지만

괄호 안에서 곱해서 넣으면 체감상 큰 차이는 없다.

width = 10
height = 5
area = "The area is {}.".format(width * height)
print(area)

 

개인적으로는 f-string을 먼저 배우기도 했고, 사용하기도 좀 더 간결하고 직관적이라 앞으로도 f-string을 사용할 것 같다. python 3.6부터 도입이 되었다고 하니 그 전 버전에서 안되어도 당황하지 말아야지!

 

오늘도 타닥타닥 조용히 공부하는 모닥불이었습니다. 🔥🔥🔥 그럼 이만, 화르륵