f-string 문법과 서식 지정자
1. f-string 소개
f-string, 즉 Formatted String Literals는 Python 3.6에서 도입된 문자열 포매팅 방법입니다. 이 방법은 문자열 내에 {}
를 사용하여 변수나 표현식을 직접 삽입할 수 있게 해줍니다.
2. 기본 사용법
f-string을 사용하여 문자열 안에 변수를 쉽게 포함시킬 수 있습니다.
3. 표현식 사용하기
f-string 안에서는 계산이나 함수 호출과 같은 표현식을 직접 사용할 수 있습니다.
4. 포매팅 지정자 사용하기
f-string에서 {}
안에 :
를 사용하여 포맷을 지정할 수 있습니다. 이를 통해 소수점 아래 자릿수를 지정하거나, 정렬 방식을 정할 수 있습니다.
5. 길이와 정렬
f-string에서도 문자열의 길이와 정렬을 지정할 수 있습니다.
6. 중괄호 표현하기
f-string에서 {}
를 리터럴 문자로 표현하려면, {{
또는 }}
와 같이 두 번 연속해서 사용합니다.
문자열 안에 {}
를 포함시키면서 변수를 삽입하려면, 중괄호를 세 번 사용합니다.
7. 문자열의 형식을 지정하는 여러 방법
문자열을 형식화하는 방법은 시간이 지나면서 진화해왔으며, 현재는 주로 f-string 용법이 사용됩니다. 각 방식은 특정 상황과 요구사항에 따라 선택하여 사용할 수 있습니다. 예를 들어, 레거시 코드를 다룰 때는 이전 방식을 사용해야 할 수도 있습니다.
7.1 이전 방식 - 형식 문자열 사용
이전 방식은 형식 문자를 사용하여 변수를 문자열에 포함시키는 방식입니다. 여기에는 % 연산자를 사용하며, 각 형식 문자는 변수의 유형에 따라 다릅니다 (예: %s는 문자열, %d는 정수, %f는 실수).
7.2 Python 3 - str.format()
방식
Python 3부터 도입된 format()
메서드는 좀 더 유연하고 읽기 쉬운 형식 지정을 가능하게 합니다. 이 방식에서는 {}
를 사용하며, format()
함수의 인자들이 이 중괄호에 순서대로 매핑됩니다.
# 예시
print('나의 이름은 {}입니다'.format(name))
print('나의 이름은 {0}입니다. 나이는 {1}세이고 성별은 {2}입니다.'.format(name, age, gender))
print('나이는 {age}세이고 성별은 {gender}입니다. 나의 이름은 {name}입니다.'.format(name=name, age=age, gender=gender))
# 예시
print('나의 이름은 {}입니다'.format(name))
print('나의 이름은 {0}입니다. 나이는 {1}세이고 성별은 {2}입니다.'.format(name, age, gender))
print('나이는 {age}세이고 성별은 {gender}입니다. 나의 이름은 {name}입니다.'.format(name=name, age=age, gender=gender))
7.3 Python 3.6 이상 - f-string 방식
Python 3.6부터는 f-string이라는 더욱 간결하고 직관적인 형식이 도입되었습니다. 이 방식은 문자열 앞에 f
를 붙여 사용하며, 중괄호 안에 직접 변수 이름이나 표현식을 넣을 수 있습니다. 주로 작은 다옴표 앞에 또는 작은 따옴표 3개 앞에 사용합니다.
8. 문자열 정렬
문자열을 정렬하는 것은 텍스트 기반의 사용자 인터페이스, 보고서, 데이터 표시 등에서 일관된 레이아웃을 유지하기 위해 주로 사용됩니다. 정렬은 가독성을 높이고, 데이터를 더욱 명확하게 표현하는 데 도움이 됩니다.
format()
메소드를 사용하여 문자열의 길이와 정렬을 지정할 수 있습니다:
{:길이}
: 출력할 데이터의 총 길이를 지정합니다. 기본적으로 문자열은 왼쪽 정렬되고, 숫자는 오른쪽 정렬됩니다.{:<길이}
: 왼쪽 정렬합니다.{:>길이}
: 오른쪽 정렬합니다.{:^길이}
: 가운데 정렬합니다.- 추가 문자와 함께 사용하여 빈 공간을 채울 수도 있습니다 (예:
{:->길이}
는 '-'로 채운 오른쪽 정렬).
f-string을 사용하는 경우에도 유사한 방식으로 정렬을 지정할 수 있습니다:
문자열 정렬은 특히 데이터가 여러 열로 구성된 표나 목록을 출력할 때 매우 중요합니다. 정렬을 통해 데이터가 깔끔하게 배열되어 사용자가 정보를 더 쉽게 이해하고 읽을 수 있도록 합니다.
9. 실습 코드
아래 노트북에 여러 테스트 코드를 넣어두었습니다. 다양한 상황에 사용법을 숙지해보세요.
formatting.ipynb