Python 포맷 문자열과 지수표기법 문제 풀이(Claude)
2026. 7. 11. 10:40ㆍ파이썬
📌 문제
다음 python의 프로그램을 분석하여 실행 결과에 대해 작성하시오.
i = 20
f = 123456.789E-3
print('%d\n%d' % (i, i), end = '/')
print('%.3f' % f)
단계별 실행
1행 — i
i = 20
2행 — f
f = 123456.789E-3
E-3은 10의 -3승을 의미합니다.
123456.789 × 10⁻³ = 123.456789
3행 — print('%d\n%d' % (i, i), end = '/')
%d는 정수 포맷, \n은 줄바꿈 문자입니다.
'%d\n%d' % (20, 20)
# → "20\n20"
즉 20 출력 → 줄바꿈 → 20 출력이 됩니다.
여기서 end='/'가 있으므로, print()가 원래 마지막에 붙이는 줄바꿈(\n) 대신 /를 붙입니다.
20
20/
4행 — print('%.3f' % f)
%.3f는 소수점 셋째 자리까지 표시(4번째 자리에서 반올림)합니다.
123.456789 → 123.457
이 print()는 end를 지정하지 않았으므로 기본값인 줄바꿈이 적용됩니다.
✅ 최종 실행 결과
20
20/123.457
⚠️ 함정 포인트
- \n은 포맷 문자열 안에서도 줄바꿈으로 작동한다 — '%d\n%d'처럼 중간에 있어도 그대로 줄바꿈됩니다.
- end='/'는 그 print문의 "마지막 줄바꿈"만 바꾼다 — 문자열 내부의 \n은 그대로 작동하고, 오직 print가 끝날 때 기본으로 붙는 개행만 /로 대체됩니다.
- E-3은 지수 표기법 — 123456.789E-3 = 123456.789 × 10⁻³ = 123.456789
- %.3f는 반올림한다 — 123.456789의 4번째 소수점(7)이 5 이상이므로 3번째 자리(6)가 7로 올림됩니다.
🎯 핵심 개념 정리
%d — 정수 포맷
'%d' % 20
# → "20"
\n — 줄바꿈 문자
문자열 어디에 있든 그 위치에서 줄이 바뀝니다.
print("A\nB")
# 결과:
# A
# B
end 옵션
print()는 기본적으로 출력이 끝나면 줄바꿈(\n)을 붙입니다. end를 지정하면 그 문자로 대체됩니다.
print("A", end="/")
print("B")
# 결과: A/B
지수 표기법 (E 또는 e)
숫자 E 지수 → 숫자 × 10^지수
123456.789E-3 # 123456.789 × 10⁻³ = 123.456789
1.5E3 # 1.5 × 10³ = 1500.0
%.Nf — 소수점 N자리 포맷 (반올림)
'%.3f' % 123.456789
# → "123.457"
✍️ 시험 답안용 한 줄 풀이
i는 20, f는 지수 표기법으로 계산하면 123.456789이다. 첫 번째 print는 20을 출력하고 줄바꿈 후 다시 20을 출력하는데, end='/' 때문에 마지막 줄바꿈이 /로 바뀐다. 두 번째 print는 f를 소수점 셋째 자리까지 반올림한 123.457을 출력하므로, 최종 결과는 20, 20/123.457이 각각 다른 줄에 출력된다.
🧠 미니 퀴즈
- f = 5E2일 때 f의 값은 무엇일까요?
- end='/'를 end=''로 바꾸면 출력은 어떻게 바뀔까요?
- '%.3f' % f를 '%.1f' % f로 바꾸면 결과는?
- i = 20.7로 바꾸고 '%d' % i를 실행하면 어떻게 될까요?
정답
- 500.0 (5 × 10² = 500)
- 20 출력 후 줄바꿈 없이 바로 20이 이어져서 → 20\n20123.457, 즉 20, 20123.457이 두 줄로 출력됩니다.
- 123.5 — 소수점 둘째 자리(5)에서 반올림되어 첫째 자리까지만 표시
- %d는 정수만 받으므로 20.7을 그대로 쓰면 정수부만 잘라 20으로 출력됩니다(파이썬 버전에 따라 타입 오류가 날 수도 있어 실제로는 int(i)로 변환하는 게 안전합니다).
'파이썬' 카테고리의 다른 글
| Python 클래스 변수와 반복문 문제 풀이(Claude) (0) | 2026.07.11 |
|---|---|
| 도시 이름의 첫 글자로 완성하는 문자열(Chatgpt) (0) | 2026.07.11 |
| 줄바꿈 뒤에 /를 붙이고, 실수를 반올림하라(Chatgpt) (0) | 2026.07.11 |
| Python 리스트·문자열 함수 분석 문제 풀이(Claude) (0) | 2026.07.11 |
| 문자열은 나누고, 숫자는 골라내기(Chatgpt) (0) | 2026.07.11 |