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은 일관성을 유지하기 위해 위와 같은 정렬 방식이 기본 값이다.
원한다면 오른쪽, 왼쪽, 중앙으로 정렬도 가능하다
댓글