본문 바로가기
Python 프로그래밍

.format() 포멧 python 파이썬 print 프린트

by aiyoon 2025. 6. 19.
반응형

🔍  .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***'
 

반응형