파이썬 f-string으로 숫자와 날짜 깔끔하게 출력하기

파이썬 f-string으로 숫자와 날짜 깔끔하게 출력하기

작성자

카테고리:

문제 상황

프로그램 실행 결과를 확인할 때 숫자가 너무 길거나 날짜 형식이 제각각이면 내용을 파악하기 힘듭니다. 특히 소수점 아래 자릿수가 무작위로 출력되면 데이터 사이의 정렬이 어긋나 가독성이 떨어집니다. 천 단위 구분 쉼표가 없는 큰 숫자는 금액이나 수량을 오독하게 만드는 원인이 되기도 합니다.

단순히 변수만 출력하면 1250000과 같은 숫자는 한눈에 얼마인지 알아보기 어렵습니다. 날짜 역시 시스템 기본 형식으로 출력하면 연, 월, 일 구분이 모호하여 가공이 필요합니다. 문자열을 일일이 더하거나 복잡한 포맷 함수를 쓰지 않고도 이를 깔끔하게 해결하는 방법이 필요합니다.

해결 코드

from datetime import datetime

# 가공할 데이터 준비
price = 1250000
pi_value = 3.1415926535
progress = 0.8756
log_time = datetime(2023, 10, 25, 14, 30, 45)

# 1. 숫자 포맷팅: 천 단위 쉼표와 소수점 자릿수
# 콜론 뒤에 쉼표를 붙여 구분자를 추가하고 .2f로 소수점 둘째 자리까지 제한함
formatted_price = f"금액: {price:,}원"
formatted_pi = f"원주율: {pi_value:.2f}"

# 2. 퍼센트 출력과 공백 채우기
# .1%는 소수점 첫째 자리까지 백분율로 변환하며 0>5는 5칸 중 빈 곳을 0으로 채움
formatted_pct = f"진행률: {progress:.1%}"
formatted_id = f"사용자 ID: {7:0>5}"

# 3. 날짜 및 시간 포맷팅
# datetime 객체 뒤에 직접 포맷 코드를 작성하여 날짜 형식을 변경함
formatted_date = f"기록 날짜: {log_time:%Y년 %m월 %d일}"
formatted_time = f"기록 시간: {log_time:%H:%M:%S}"

# 4. 문자열 정렬과 패딩
# <, >, ^ 기호를 사용하여 왼쪽, 오른쪽, 중앙 정렬을 수행함
subject = "Python"
left_align = f"|{subject:<10}|"
right_align = f"|{subject:>10}|"
center_align = f"|{subject:^10}|"

# 결과 출력
print(formatted_price)
print(formatted_pi)
print(formatted_pct)
print(formatted_id)
print(formatted_date)
print(formatted_time)
print(left_align)
print(right_align)
print(center_align)

코드 설명

  1. 중괄호 안의 변수명 뒤에 콜론과 쉼표를 붙여 천 단위마다 구분 기호를 넣습니다.
  2. 점과 숫자를 조합한 서식을 사용하여 소수점 아래 출력 범위를 지정합니다.
  3. 퍼센트 기호를 서식 끝에 추가하여 소수점 데이터를 백분율 형태로 바꿉니다.
  4. 부등호와 숫자를 활용하여 문자열이 차지할 전체 폭과 정렬 위치를 정합니다.
  5. 날짜 객체에 서식 지정자를 직접 입력하여 연, 월, 일 순서를 조절합니다.
  6. 숫자 앞에 0을 붙여 자릿수를 맞추는 방식으로 데이터를 규격화합니다.

실행 결과

금액에는 1,250,000처럼 쉼표가 붙고 진행률은 87.6%로 반올림되어 나타납니다. 사용자 ID는 00007로 출력되며 파이썬이라는 글자가 10칸의 공간 안에서 위치를 옮깁니다.

금액: 1,250,000원
원주율: 3.14
진행률: 87.6%
사용자 ID: 00007
기록 날짜: 2023년 10월 25일
기록 시간: 14:30:45
|Python    |
|    Python|
|  Python  |

정리

f-string은 단순히 변수 값을 넣는 기능을 넘어 강력한 출력 서식 기능을 제공합니다. 콜론 뒤에 간단한 기호를 추가하는 것만으로도 숫자 형식을 바꾸거나 날짜를 읽기 좋게 다듬을 수 있습니다. 별도의 서식 변환 함수를 호출하지 않아도 되므로 코드의 가독성이 유지됩니다.

정렬과 패딩 기능을 적절히 섞어서 사용하면 텍스트 기반의 인터페이스에서도 표 형태의 정갈한 출력이 가능합니다. 소수점 자릿수 제한은 데이터의 정밀도를 유지하면서도 화면을 깔끔하게 만드는 역할을 합니다. 날짜 서식 지정자를 활용하면 복잡한 날짜 연산 없이도 원하는 형태의 리포트를 작성할 수 있습니다.

데이터의 특성에 맞는 서식을 적용하여 코드의 결과물이 주는 정보를 명확하게 전달하십시오. f-string의 포맷팅 문법을 익혀두면 디버깅 로그나 사용자 메시지를 구성할 때 작업 시간을 줄여줍니다. 실무에서 자주 쓰이는 쉼표 추가와 소수점 제어는 가장 먼저 익혀야 할 핵심 기술입니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다