본문 바로가기
[Python]

[Python] Python 문자열 포매팅 왜 문자는 왼쪽 정렬, 숫자는 오른쪽 정렬일까?

by Yong9_9 2023. 9. 21.

Python 문자열 포매팅 왜 문자는 왼쪽 정렬, 숫자는 오른쪽 정렬일까?

문자열 포매팅 학습을 하던 중 의문이 생겼다

s = '문자열'
n = 22
print(f'문자열에게 공백추가: [{s:15}]')
 #문자열에게 공백추가: [문자열            ]

print(f'숫자에게 공백시작: [{n:15}]') 
# 숫자에게 공백추가: [             22]

다음과 같이 동일한 문법을 사용했는데 정렬 위치가 다른 점을 확인할 수 있었다.

처음에는 내가 문법적인 실수를 범한줄 알고 재차 확인해 보았지만 문법적 오류는 없었다.

알고보니 문자는 왼쪽 정렬, 숫자는 오른쪽 정렬이 default 였던 것이다.

  • 텍스트 데이터는 보통 왼쪽에서 오른쪽으로 읽어가는 방향이 자연스럽기 때문

  • 숫자를 표현할 때 오른쪽 정렬이 더 읽기 쉽고 정렬된 형태로 보이기 때문

  • 숫자를 오른쪽 정렬하면 숫자의 자릿수가 일치하도록 출력이 정렬된다

  • Python은 다른 프로그래밍 언어와의 일관성을 유지하기 위해 문자열 출력을 왼쪽 정렬 숫자 정렬은 오른쪽 정렬으로 설정한다.

그럼 문자열을 오른쪽으로 정렬 숫자를 왼쪽 정렬 하려면?

s = '문자열'
n = 22
print(f'문자열에게 공백추가(오른쪽 정렬)): [{s:>15}]')
print(f'숫자에게 공백추가 (왼쪽 정렬)): [{n:<15}]')

다음과 같이 > < 기호를 사용하여 정렬 위치를 정할 수 있다.

중앙정렬도 가능할까??

당연히 가능하다

s = '문자열'
n = 22
print(f'문자열에게 공백추가(중앙 정렬)): [{s:^15}]')
print(f'숫자에게 공백추가 (중앙 정렬)): [{n:^15}]')

이번에는 ^기호를 사용하여 중앙으로 정렬시킬 수 있다.

3줄 요약

  • 문자열은 왼쪽 정렬 숫자는 오른쪽 정렬이 Default 값

  • 일반적인 관습이기에 Python은 일관성을 유지하기 위해 위와 같은 정렬 방식이 기본 값이다.

  • 원한다면 오른쪽, 왼쪽, 중앙으로 정렬도 가능하다

댓글