f-string이란?
f-string은 Python 3.6+에서 도입된 문자열 포매팅 방식입니다. 문자열 앞에 'f' 또는 'F'를 붙여 사용하며, 중괄호 {}를 통해 파이썬 표현식을 직접 삽입할 수 있습니다.
기본 사용법
f-string의 기본 사용법은 매우 간단합니다. 문자열 앞에 'f' 또는 'F' 접두사를 붙이고, 중괄호 {} 안에 변수나 표현식을 넣으면 됩니다. 중괄호 안의 변수나 표현식은 문자열이 만들어질 때 자동으로 평가되어 그 결과값이 문자열에 포함됩니다.
예를 들어, 아래 코드에서는 name과 age 변수의 값이 문자열 내부에 자동으로 삽입됩니다. 이때 변수의 타입을 신경 쓸 필요가 없으며, 파이썬이 자동으로 적절한 문자열 변환을 수행합니다.
name = "Alice" # 변수페이지 참고
age = 25
print(f"My name is {name} and I'm {age} years old")
Python
복사
연습만이 성장의 지름길! 
코딩은 직접 해봐야 합니다! colab으로 간단히 연습해 보세요. 프로젝트 전체가 아닌, 작은 코드 조각들을 하나씩 연습하는 것입니다. 이렇게 연습한 조각들이 모여 성공적인 프로젝트가 완성됩니다.
f-string의 장점
•
가독성이 좋음: 문자열 내에 직접 변수를 삽입할 수 있어 코드가 더 명확해집니다.
# 기존 방식
name = "Alice"
print("Hello, {}".format(name))
# f-string 방식
print(f"Hello, {name}") # 더 직관적이고 읽기 쉬움
Python
복사
•
간결한 문법: % 연산자나 .format() 메소드보다 더 간단하게 사용할 수 있습니다.
# % 연산자 방식
print("Score: %d%%" % 85)
# .format() 방식
print("Score: {}%".format(85))
# f-string 방식
print(f"Score: {85}%") # 가장 간단함
Python
복사
•
표현식 지원: 중괄호 안에 간단한 파이썬 표현식을 사용할 수 있습니다.
price = 1000
quantity = 3
# 수식 계산
print(f"Total: ${price * quantity:,}") # Total: $3,000
# 메소드 호출
name = "alice"
print(f"Hello, {name.title()}") # Hello, Alice
# 딕셔너리 접근
data = {"x": 100, "y": 200}
print(f"Position: ({data['x']}, {data['y']})") # Position: (100, 200)
Python
복사
주의사항
•
Python 3.6 이상의 버전에서만 사용 가능합니다.
# Python 3.5 이하에서는 에러 발생
# SyntaxError: invalid syntax
name = "Alice"
f"Hello, {name}"
Python
복사
•
중괄호를 출력하려면 이중 중괄호({{ }})를 사용해야 합니다.
# 중괄호 출력하기
print(f"중괄호 표시: {{변수}}") # 출력: 중괄호 표시: {변수}
Python
복사
•
표현식 내에서 따옴표 사용 시 주의가 필요합니다.
◦
작은따옴표와 큰따옴표를 적절히 혼용해야 합니다.
name = "Alice"
print(f'Hello, "{name}"') # 큰따옴표 출력
print(f"Hello, '{name}'") # 작은따옴표 출력
Python
복사
◦
f-string 내에서 같은 따옴표를 사용할 경우 이스케이프(\)가 필요합니다.
message = "Hello"
print(f"He said \"${message}\"") # 이스케이프 사용
Python
복사
•
멀티라인 f-string은 백슬래시(\)를 사용하거나 괄호로 묶어야 합니다.
# 괄호 사용
message = (
f"First line "
f"Second line"
)
# 백슬래시 사용
message = f"First line " \
f"Second line"
Python
복사
•
표현식 안에서는 백슬래시(\)를 사용할 수 없습니다.
# 에러 발생
# SyntaxError: f-string expression part cannot include a backslash
print(f"{\"quoted\"}") # 잘못된 예시
# 대신 변수 사용
quoted = "quoted"
print(f"{quoted}") # 올바른 예시
Python
복사
•
중괄호 안에서는 if-else문을 직접 사용할 수 없으며, 조건부 표현식을 사용해야 합니다.
age = 20
# 조건부 표현식 사용
print(f"Status: {'성인' if age >= 18 else '미성년자'}")
# 직접 if문은 사용 불가
# print(f"Status: {if age >= 18: '성인' else '미성년자'}") # 에러
Python
복사
Python 3.13의 f-string 업데이트
Python 3.13에서는 f-string에 새로운 기능이 추가되었습니다. 가장 주목할 만한 변화는 중괄호 안에서 줄 바꿈이 가능해진 것입니다.
# Python 3.13 이전
data = (f"Value: {"
"multi-line "
"not allowed"}")
# Python 3.13부터 가능
data = f"Value: {
"multi-line "
"allowed"
}"
Python
복사
이러한 변화로 인해 복잡한 표현식을 포함하는 f-string을 더 가독성 있게 작성할 수 있게 되었습니다. 특히 긴 표현식이나 여러 줄에 걸친 계산식을 작성할 때 유용합니다.