인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

불꽃남자님의 프로필 이미지

작성한 질문수

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

format 함수 질문

해결된 질문

작성

·

23

0

 1. 아래 두 줄의 출력값이 동일한데 무슨 차이인지 모르겠습니다.

print('{:10f}'.format(3.141592))
print('{:10}'.format(3.141592))

 

2. 문자는 부등호를 생략하면 왼쪽으로 몰리는 반면, 정수의 경우는 >를 사용하나 생략하나 둘 다 오른쪽으로 몰려서 출력되는 이유가 궁금합니다.

print('{:4d}'.format(42))
print('{:10}'.format('nice'))

감사합니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 불꽃남자님.
두 가지 질문에 대한 간단한 설명을 드리겠습니다.

  1. format 함수의 사용 차이:

    • '{:10f}'.format(3.141592): 여기서 10f는 ‘소수점 포함 총 10자리로 소수를 포맷하라’는 의미입니다. 소수점 이하 기본 6자리가 표시됩니다.
    • '{:10}'.format(3.141592): 여기서 10은 넓이 10의 공간을 고려한 출력입니다. 기본적으로 소수점 이하 숫자는 조정되지 않고 전체 숫자가 10칸을 차지하도록 정렬됩니다.
  2. 문자와 숫자의 정렬 차이:

    • 파이썬의 format 함수에서 부등호(<, > 등)의 사용을 생략한 경우, 숫자는 기본적으로 오른쪽 정렬이 됩니다. 이는 일반적인 숫자 출력의 관례 때문이며, 문자는 기본적으로 왼쪽 정렬이 됩니다.
    • '{:4d}'.format(42): 정수가 오른쪽으로 정렬되고 총 4칸을 사용합니다.
    • '{:10}'.format('nice'): 문자열이 기본적으로 왼쪽 정렬되며, 총 10칸을 사용하되 나머지는 빈 공간으로 남습니다.

이러한 포맷팅 방식은 데이터의 취급 방식이기 때문에 의도적으로 정렬을 변경하실 때만 > 또는 <을 명시적으로 사용하시면 됩니다.

아래 유사한 질문과 답변들을 참고하시면 더 도움이 될 것 같습니다:
- “파이썬 String Formatting에 대한 질문”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.