네 글자만 남기고, 열 칸에 정렬하기(Chatgpt)

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