2026. 7. 11. 10:37ㆍ파이썬
지수 표기법과 Python 출력 형식 분석
1. 문제
다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.
i = 20
f = 123456.789E-3
print('%d\n%d' % (i, i), end='/')
print('%.3f' % f)
2. 주요 포인트
이 문제에서는 다음 내용을 확인해야 합니다.
① 지수 표기법 E-3
123456.789E-3
E-3은 앞의 수에 (10^{-3})을 곱한다는 의미입니다.
123456.789 × 10⁻³
즉, 소수점을 왼쪽으로 세 칸 이동합니다.
② 정수 출력 형식 %d
'%d' % i
%d는 정수를 출력할 때 사용하는 형식 지정자입니다.
③ 줄바꿈 문자 \n
'%d\n%d'
\n은 출력 위치를 다음 줄로 이동시키는 줄바꿈 문자입니다.
④ end='/'
일반적인 print()는 출력이 끝난 후 줄을 바꿉니다.
하지만 다음과 같이 end를 지정하면 줄바꿈 대신 /를 출력합니다.
print(..., end='/')
⑤ 소수점 자릿수 %.3f
'%.3f' % f
실수를 소수점 아래 세 자리까지 출력합니다.
넷째 자리에서 반올림됩니다.
3. 풀이
3-1. 변수 i 확인
i = 20
따라서 변수 i에는 정수 20이 저장됩니다.
i = 20
3-2. 변수 f 계산
f = 123456.789E-3
E-3은 (10^{-3})을 의미하므로 다음과 같이 계산합니다.
123456.789 × 10⁻³
소수점을 왼쪽으로 세 칸 이동하면 다음과 같습니다.
123456.789
↓
123.456789
따라서 변수 f의 값은 다음과 같습니다.
f = 123.456789
3-3. 첫 번째 출력문 분석
print('%d\n%d' % (i, i), end='/')
서식 문자열에는 %d가 두 개 있습니다.
'%d\n%d'
두 개의 %d에 각각 i의 값 20이 들어갑니다.
'%d\n%d' % (20, 20)
첫 번째 %d가 출력된 뒤 \n에 의해 줄을 바꾸고, 두 번째 %d가 출력됩니다.
20
20
그러나 print()의 끝에 다음 옵션이 있습니다.
end='/'
따라서 두 번째 20을 출력한 뒤 줄을 바꾸지 않고 /를 붙입니다.
현재까지 출력된 결과는 다음과 같습니다.
20
20/
3-4. 두 번째 출력문 분석
print('%.3f' % f)
변수 f의 값은 다음과 같습니다.
123.456789
%.3f는 소수점 아래 세 자리까지 출력합니다.
123.456789
↑
소수점 넷째 자리: 7
소수점 넷째 자리가 7이므로 셋째 자리인 6을 올림합니다.
123.456 → 123.457
따라서 두 번째 출력문은 다음 값을 출력합니다.
123.457
첫 번째 출력문이 / 뒤에서 줄을 바꾸지 않았으므로 같은 줄에 이어서 출력됩니다.
20/123.457
4. 실행 흐름 한눈에 보기
i = 20
f = 123456.789E-3
= 123456.789 × 10⁻³
= 123.456789
첫 번째 출력문:
%d → 20
\n → 줄바꿈
%d → 20
end='/' → /
두 번째 출력문:
123.456789
↓ %.3f
123.457
5. 정답
20
20/123.457
6. 시험에서 주의할 함정
E-3은 3을 빼는 것이 아닙니다
123456.789E-3
잘못된 해석:
123456.789 - 3
올바른 해석:
123456.789 × 10⁻³
\n과 end는 서로 다른 위치에서 작동합니다
print('%d\n%d' % (i, i), end='/')
\n은 문자열 중간에서 줄을 바꾸고, end='/'는 전체 출력이 끝나는 위치에 /를 붙입니다.
따라서 다음처럼 출력됩니다.
20
20/
%.3f는 단순히 뒤를 자르는 것이 아닙니다
'%.3f' % 123.456789
소수점 아래 세 자리까지 표현하면서 넷째 자리에서 반올림합니다.
123.456789 → 123.457
7. 시험 풀이 요약
i에는 20이 저장된다.
123456.789E-3은
123456.789 × 10⁻³이므로 123.456789이다.
첫 번째 print문은 20을 출력한 후 \n으로 줄을 바꾸고,
다시 20을 출력한 뒤 end='/'에 의해 /를 붙인다.
두 번째 print문은 123.456789를 소수점 셋째 자리까지
반올림하여 123.457을 출력한다.
따라서 최종 출력 결과는 다음과 같다.
20
20/123.457
'파이썬' 카테고리의 다른 글
| 도시 이름의 첫 글자로 완성하는 문자열(Chatgpt) (0) | 2026.07.11 |
|---|---|
| Python 포맷 문자열과 지수표기법 문제 풀이(Claude) (0) | 2026.07.11 |
| Python 리스트·문자열 함수 분석 문제 풀이(Claude) (0) | 2026.07.11 |
| 문자열은 나누고, 숫자는 골라내기(Chatgpt) (0) | 2026.07.11 |
| 파이썬 슬라이싱 — "기차 칸" 비유로 이해하기(Claude) (0) | 2026.07.11 |