2026. 7. 11. 10:49ㆍ파이썬
문자열 출력 폭과 왼쪽·오른쪽 정렬 분석
1. 문제
다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.
a = "What's this?"
print("%-10.4s" % a)
print("%10.4s" % a)
2. 주요 포인트
이 문제는 문자열 서식 지정에서 출력할 문자 수, 전체 출력 폭, 정렬 방향을 구분하는 문제입니다.
① %s
"%s" % a
문자열을 출력하는 서식 지정자입니다.
② .4s
"%.4s" % a
문자열에서 앞쪽의 문자 4개만 출력합니다.
What's this?
↓ 앞의 4글자
What
③ 숫자 10
"%10.4s"
전체 출력 공간을 10칸으로 지정합니다.
출력할 문자열은 "What"으로 4글자이므로 나머지 6칸은 공백으로 채워집니다.
전체 10칸 - 문자열 4칸 = 공백 6칸
④ 마이너스 기호 -
"%-10.4s"
-가 있으면 문자열을 왼쪽에 정렬합니다.
"%10.4s"
-가 없으면 문자열을 오른쪽에 정렬합니다.
3. 풀이
3-1. 문자열 저장
a = "What's this?"
변수 a에는 다음 문자열이 저장됩니다.
What's this?
각 문자의 위치를 확인하면 다음과 같습니다.
인덱스01234567891011
| 문자 | W | h | a | t | ' | s | 공백 | t | h | i | s | ? |
.4s가 적용되므로 인덱스 0번부터 3번까지의 문자만 사용합니다.
W + h + a + t = What
3-2. 첫 번째 출력문
print("%-10.4s" % a)
서식 문자열을 나누어 보면 다음과 같습니다.
- : 왼쪽 정렬
10 : 전체 출력 폭 10칸
.4 : 문자열 앞에서 4글자만 출력
s : 문자열 형식
출력할 문자열은 다음과 같습니다.
What
전체 공간은 10칸이고 문자열은 4칸이므로 오른쪽에 공백 6칸이 추가됩니다.
What + 공백 6칸
공백을 □로 표시하면 다음과 같습니다.
What□□□□□□
따라서 첫 번째 줄은 "What"이 왼쪽에 정렬됩니다.
3-3. 두 번째 출력문
print("%10.4s" % a)
이번에는 -가 없습니다.
10 : 전체 출력 폭 10칸
.4 : 문자열 앞에서 4글자만 출력
s : 문자열 형식
기본 정렬 방식은 오른쪽 정렬이므로 문자열 왼쪽에 공백 6칸이 추가됩니다.
공백 6칸 + What
공백을 □로 표시하면 다음과 같습니다.
□□□□□□What
따라서 두 번째 줄은 "What"이 오른쪽에 정렬됩니다.
4. 출력 구조 한눈에 보기
공백이 보이도록 양쪽에 |를 표시하면 다음과 같습니다.
|What |
| What|
각 줄의 출력 폭은 모두 10칸입니다.
출력문정렬실제 문자공백 위치
| %-10.4s | 왼쪽 정렬 | What | 오른쪽 6칸 |
| %10.4s | 오른쪽 정렬 | What | 왼쪽 6칸 |
양쪽의 | 문자는 정렬을 설명하기 위한 표시이며 실제 출력에는 포함되지 않습니다.
5. 정답
What
What
공백을 눈에 보이게 표현하면 다음과 같습니다.
What□□□□□□
□□□□□□What
6. 시험에서 주의할 부분
10.4를 소수로 해석하면 안 됩니다
"%10.4s"
여기서 10.4는 숫자 10.4가 아닙니다.
10 → 전체 출력 폭
4 → 출력할 최대 문자 수
.4s는 네 번째 인덱스까지가 아닙니다
"%.4s" % "What's this?"
앞에서부터 총 4개의 문자를 가져옵니다.
W, h, a, t
따라서 결과는 다음과 같습니다.
What
작은따옴표 '는 다섯 번째 문자이므로 출력되지 않습니다.
-는 음수를 의미하지 않습니다
"%-10.4s"
문자열 서식에서 -는 왼쪽 정렬을 의미합니다.
- 있음 → 왼쪽 정렬
- 없음 → 오른쪽 정렬
7. 시험 풀이 요약
문자열 "What's this?"에 .4s를 적용하면
앞의 네 글자인 "What"만 출력된다.
전체 출력 폭은 10칸이므로
문자열 4칸을 제외한 6칸은 공백으로 채워진다.
%-10.4s는 "What"을 왼쪽에 정렬하고,
%10.4s는 "What"을 오른쪽에 정렬한다.
따라서 실행 결과는 다음과 같다.
What
What
'파이썬' 카테고리의 다른 글
| 홀수만 더하고 반복문을 빠져나오다(Chatgpt) (0) | 2026.07.11 |
|---|---|
| Python 문자열 포맷 (폭과 정밀도) 문제 풀이(Claude) (0) | 2026.07.11 |
| Python 클래스 변수와 반복문 문제 풀이(Claude) (0) | 2026.07.11 |
| 도시 이름의 첫 글자로 완성하는 문자열(Chatgpt) (0) | 2026.07.11 |
| Python 포맷 문자열과 지수표기법 문제 풀이(Claude) (0) | 2026.07.11 |