반응형
🔍 .format()의 인덱스 기반 자리 표시자
print("{0:>2} X {1:>2} = {2:>2}".format(dan, n, dan * n))
여기서 .format()은 **전달된 값의 위치(순서)**에 따라 중괄호 {} 자리에 대응시킵니다.
🔢 정리해보면:
자리 표시자 | 의미 | 실제 값 |
{0:>2} | 첫 번째 인자 dan을 오른쪽 정렬(>), 2자리 폭(:2) | 예: 3 → " 3" |
{1:>2} | 두 번째 인자 n을 오른쪽 정렬 | 예: 7 → " 7" |
{2:>2} | 세 번째 인자 dan * n을 오른쪽 정렬 | 예: 21 → "21" |
즉, .format(dan, n, dan * n) → 0, 1, 2 순서대로 자리 표시자에 대응됩니다.
🧠 비유로 설명
.format()은 마치 다음과 같습니다:
args = [dan, n, dan * n]
print("args[0] x args[1] = args[2]")
그러니까 숫자 인덱스 {0}, {1}, {2}는 .format()에 넘긴 값의 순서(index) 를 기준으로 동작해요.
✅ 이름 기반 vs 인덱스 기반 비교
방식 | 예시 | 설명 |
인덱스 기반 | "{0} x {1} = {2}".format(dan, n, dan*n) | 순서 중요 |
키워드 기반 | "{dan} x {n} = {res}".format(dan=3, n=4, res=12) | 변수 이름 명시 |
💬 팁: :>2는 무엇인가요?
- : → 포맷 옵션 시작
- > → 오른쪽 정렬
- 2 → 최소 2칸 자리 확보
예:
print("{0:>2}".format(5)) # ' 5'
print("{0:>2}".format(15)) # '15'
🔚 정리
구문 | 의미 |
{0} | .format()에서 첫 번째 값 |
{0:>2} | 첫 번째 값을 오른쪽 정렬, 최소 2칸 폭 |
.format(dan, n, dan*n) | {0}, {1}, {2}로 각각 매핑됨 |
📊 .format() 포맷 옵션 요약표
포맷 문자열 | 의미 | 예시 | 출력 결과 | 설명 |
{:<10} | 왼쪽 정렬 (Left) | "{:<10}".format("Hi") | 'Hi ' | 총 10칸 확보 후 왼쪽 정렬 |
{:>10} | 오른쪽 정렬 (Right) | "{:>10}".format("Hi") | ' Hi' | 총 10칸 확보 후 오른쪽 정렬 |
{:^10} | 가운데 정렬 (Center) | "{:^10}".format("Hi") | ' Hi ' | 10칸 확보 후 중앙 배치 |
{:_>10} | 오른쪽 정렬 + 채움 문자 _ | "{:_>10}".format("Hi") | '________Hi' | _으로 빈칸 채움 |
{:*^10} | 가운데 정렬 + 채움 문자 * | "{:*^10}".format("Hi") | '****Hi****' | 중심에 배치하고 *로 채움 |
{:03d} | 3자리 정수, 0으로 채움 | "{:03d}".format(5) | '005' | 0으로 앞을 채움 |
{:.2f} | 소수점 2자리 고정 | "{:.2f}".format(3.14159) | '3.14' | 실수를 소수점 둘째자리까지 표시 |
{:10.2f} | 총 10자리, 소수점 2자리 | "{:10.2f}".format(3.14) | ' 3.14' | 소수 2자리, 오른쪽 정렬 |
{:+.2f} | 부호 표시 | "{:+.2f}".format(3.14) | '+3.14' | 양수/음수 모두 부호 출력 |
{:,} | 3자리마다 콤마 | "{:,}".format(1000000) | '1,000,000' | 숫자에 천 단위 구분 기호 |
{:.0%} | 백분율 | "{:.0%}".format(0.875) | '88%' | 100 곱한 후 % 표시 |
🔍 실습 예시
print("{:<10}".format("Hi")) # 왼쪽 정렬
print("{:_>10}".format("Hi")) # 오른쪽 정렬 + _ 채움
print("{:.2f}".format(3.14159)) # 소수점 둘째 자리까지
print("{:+.2f}".format(-7.5)) # 부호 포함
print("{:03d}".format(7)) # 정수 3자리, 0 채움
print("{:,}".format(123456789)) # 천 단위 구분
print("{:.1%}".format(0.84)) # 퍼센트
📌 참고: .format() 기본 구조
"{[인덱스 또는 변수명]:[정렬][채움문자][너비][.소수점자릿수][형식]}".format(...)
예:
"{0:*<8.2f}".format(12.3) → '12.30***'
반응형
'Python 프로그래밍' 카테고리의 다른 글
참조 변수의 차이 사본 원본 copy reference range list (0) | 2025.06.18 |
---|---|
python 파이썬 변수 데이터 타입 확장형for문 pop remove append insert (0) | 2025.06.18 |
python 파이썬 install .py .ipynb 비주얼 코드 visual studo code markdown (1) | 2025.06.18 |