출력 예측 · 출력 줄 수 · 출력 순서 · 출력 이유 · 자동 채점 · 정답/해설 · TXT 저장
학습 안내
업로드된 3부 코드 셀을 바탕으로, 셀 출력과 직접 관련된 5지선다형 21문항으로 다시 구성했습니다.
모든 문항은 첫 줄 출력만 묻지 않고, 전체 출력, 두 번째 출력, 출력 줄 수, 출력 순서, 출력이 그렇게 되는 이유를 골고루 다룹니다.
원문 코드 셀 49번출력 형식
문항 1. end 옵션 때문에 한 줄로 이어지는 출력
작은 성공 힌트: print의 기본 줄바꿈이 언제 바뀌는지 확인하면 됩니다.
#05
class B:
def __init__(s, b):
s.__b = b
print(f"처음 금액: {s.__b}원",end="→")
def d(s, a):
s.__b += a
print(f"{a}원 입금",end="→")
def g(s):
return s.__b
a = B(2000)
a.d(1000)
print(f"현재 잔액: {a.g()}원")
이 코드 셀을 실행했을 때 전체 출력 형태로 가장 알맞은 것은?
정답: B. 처음 금액: 2000원→1000원 입금→현재 잔액: 3000원 앞의 두 print문은 end='→'를 사용하므로 줄바꿈 대신 화살표가 붙습니다. 2000원에서 1000원을 입금해 최종 잔액은 3000원입니다.
원문 코드 셀 50번출력 예측
문항 2. 여러 리스트를 조합한 첫 출력
작은 성공 힌트: i=0일 때 a[0], b[e[0]], c[d[0]]만 따라가면 됩니다.
#06
a=[
'지도학습',
'비지도학습',
'강화학습',
'자기지도학습',
'준지도학습',
]
b=[
'Semi-Supervised Learning',
'Self-Supervised Learning',
'Reinforcement Learning',
'Unsupervised Learning',
'Supervised Learning',
]
c=[
'정답 없이 데이터 패턴을 찾는 방법',
'정답이 있는 데이터를 학습하는 방법',
'보상과 벌을 통해 최적 행동을 학습하는 방법',
'일부만 정답이 있는 데이터를 학습하는 방법',
'데이터 스스로 정답을 만들어 학습하는 방법',
]
e=[4,3,2,1,0]
d=[1,0,2,4,3]
for i in range(5):
print(f'{a[i]}({b[e[i]]}) {c[d[i]]}')
첫 번째 반복에서 출력되는 문장으로 알맞은 것은?
정답: B. 지도학습(Supervised Learning) 정답이 있는 데이터를 학습하는 방법 i=0이면 a[0]='지도학습', e[0]=4라서 b[4]='Supervised Learning', d[0]=1이라서 c[1]='정답이 있는 데이터를 학습하는 방법'이 연결됩니다.
원문 코드 셀 51번출력 순서
문항 3. 객체 리스트가 만드는 출력 순서
작은 성공 힌트: 리스트 l에 들어 있는 객체 순서를 그대로 따라갑니다.
#07
class D:
def s(s):return"멍멍!"
class C:
def s(s):return"야옹~"
class S:
def s(s):return"매에~"
def m(a):
print(a.s())
l=[D(),C(),S()]
for a in l:m(a)
이 코드 셀의 출력 순서로 알맞은 것은?
정답: B. 멍멍! → 야옹~ → 매에~ l=[D(), C(), S()] 순서이므로 각 객체의 s() 결과가 멍멍!, 야옹~, 매에~ 순서로 출력됩니다.
원문 코드 셀 52번출력 줄 수
문항 4. 딕셔너리 순회와 출력 줄 수
작은 성공 힌트: 딕셔너리에는 BY, SA, ND, NC, CC0의 5개 항목이 있습니다.
#08
c={
"BY":{"eng":"Attribution","kor":"저작자 표시"},
"SA":{"eng":"ShareAlike","kor":"동일조건 변경허락"},
"ND":{"eng":"NoDerivatives","kor":"변경 금지"},
"NC":{"eng":"NonCommercial","kor":"비영리"},
"CC0":{"eng":"No Rights Reserved","kor":"저작권 포기"}
}
for k,v in c.items():
print(f'[{k}] {v["eng"]} {v["kor"]}')
이 코드 셀은 총 몇 줄을 출력하는가?
정답: D. 5줄 for k,v in c.items()가 5개 항목을 한 번씩 순회하고, 반복마다 print가 한 번 실행되므로 총 5줄이 출력됩니다.
정답: B. A → D → C → B → E 가장 아래 @add_d_suffix가 먼저 적용되어 A → D가 되고, 그 다음 C, B, E가 차례로 붙어 A → D → C → B → E가 됩니다.
원문 코드 셀 56번인덱스 출력
문항 6. 원주율 소수점 자리 출력
작은 성공 힌트: 문자열 인덱스는 0부터 시작합니다.
#11
from mpmath import mp
mp.dps=200
p=str(mp.pi)
d=p.split(".")[1]
c=d[149]
print(f'소수점 아래 150번째 숫자: {c}')
c=d[149]가 의미하는 출력 대상은 무엇인가?
정답: B. 소수점 아래 150번째 숫자 소수점 아래 첫 번째 숫자는 d[0]입니다. 따라서 d[149]는 소수점 아래 150번째 숫자입니다.
원문 코드 셀 58번조건 출력
문항 7. 조건을 만족하는 첫 보안 설명 출력
작은 성공 힌트: check 함수는 딕셔너리 값에 '구조'가 들어 있는지 확인합니다.
#13
s={
'악성코드':'시스템에 해를 끼치거나 정보를 유출',
'랜섬웨어':'파일 암호화 후 금전 요구',
'SQL 인젝션':'입력값으로 SQL 구조 조작',
'XSS':'웹 페이지 악성 스크립트 삽입',
'해싱':'원본 복원이 어려운 고정 길이 값으로 변환'
}
k=list(s)
c=lambda x:'구조'in s[x]
i=0
while i<len(k):
if not c(k[i]):
i+=1
pass
else:
print(s[k[i]])
break
while문에서 실제로 출력되는 값으로 알맞은 것은?
정답: C. 입력값으로 SQL 구조 조작 값에 '구조'가 들어 있는 첫 항목은 SQL 인젝션의 설명인 '입력값으로 SQL 구조 조작'입니다. 출력 후 break로 멈춥니다.
원문 코드 셀 61번자료구조 출력
문항 8. zip으로 만든 튜플 값 출력
작은 성공 힌트: result의 값은 (한국어 용어, 설명) 튜플입니다.
#15
eng1 = ['Confidentiality','Integrity','Availability']
kor1 = ['기밀성(機密性)','무결성(無缺性)','가용성(可用性)']
mean = [
'허가된 사람만 정보에 접근하도록 보호',
'정보 임의 변경 · 훼손 금지 정확하게 유지',
'필요한 사람이 언제든 정보 사용 보장'
]
result = dict(zip(eng1, zip(kor1, mean)))
print(result['Availability'][0])
print(result['Availability'][0])의 출력으로 알맞은 것은?
정답: C. 가용성(可用性) Availability에 대응하는 값은 ('가용성(可用性)', '필요한 사람이 언제든 정보 사용 보장')입니다. [0]은 첫 번째 요소입니다.
정답: C. 영어85♥과학88♥국어89♥수학90♥정보95 점수 오름차순은 영어85, 과학88, 국어89, 수학90, 정보95입니다. 각 과목과 점수를 붙이고 ♥로 연결합니다.
원문 코드 셀 64번출력 줄 수
문항 10. 버블 정렬 설명의 출력 줄 수
작은 성공 힌트: 리스트 b에는 제목 1개와 설명 4개가 들어 있습니다.
#17
b=[
'버블 정렬',
'앞에서부터 인접한 두 값을 비교한다.',
'왼쪽 값이 더 크면 두 값을 교환한다.',
'한 회전이 끝나면 가장 큰 값이 오른쪽 끝에 놓임.',
'정렬된 끝부분을 제외하고 반복한다.'
]
def a(f):
def w():
for i,t in enumerate(f()):
if i==0:print(t)
else:print("→",t)
return w
@a
def s():
return b
s()
s()를 실행하면 총 몇 줄이 출력되는가?
정답: D. 5줄 데코레이터 내부에서 f()가 반환한 리스트 b의 5개 원소를 모두 출력합니다. 따라서 총 5줄입니다.
정답: C. Sky 입력 리스트의 네 번째 문자열은 'Sky'입니다. 길이가 3이므로 마지막 세 글자는 그대로 'Sky'입니다.
원문 코드 셀 66번파일 출력
문항 12. 파일 내용 변경 후 출력
작은 성공 힌트: hello.txt를 먼저 만들고, 홍길동을 구운몽으로 바꿉니다.
#19
def r(f,o,n):
try:
with open(f,'r',encoding='utf-8') as x:
t=x.read()
t=t.replace(o,n)
with open(f,'w',encoding='utf-8') as x:
x.write(t)
print(t)
except FileNotFoundError:
print("파일이 없습니다.")
with open('hello.txt','w',encoding='utf-8') as f:
f.write("안녕하세요 홍길동입니다.")
r('hello.txt','홍길동','구운몽')
r('hello.txt','홍길동','구운몽') 실행 후 출력으로 알맞은 것은?
정답: B. 안녕하세요 구운몽입니다. 파일에 '안녕하세요 홍길동입니다.'를 쓴 뒤 replace로 홍길동을 구운몽으로 바꾸고, 바뀐 전체 문자열을 출력합니다.
원문 코드 셀 67번두 번째 출력
문항 13. seek와 read 이후 두 번째 출력
작은 성공 힌트: seek(12) 뒤 read(6)을 하면 커서는 18 위치로 이동합니다.
#20
with open('seek_test.txt','w',encoding='utf-8') as f:
f.write("0123456789abcdefghijklmn")
with open('seek_test.txt','r+',encoding='utf-8') as f:
f.seek(12)
d=f.read(6)
print(d)
print(f.tell())
이 코드 셀의 두 번째 출력으로 알맞은 것은?
정답: B. 18 첫 번째 출력은 읽은 문자열 cdefgh입니다. 12번 위치에서 6글자를 읽었으므로 tell()은 18을 반환하고 두 번째 줄에 18이 출력됩니다.
정답: B. 마스킹 후: 010-****-4321 split('-') 결과는 ['010','8765','4321']이고, a[1]만 '****'로 바꿉니다. print는 쉼표 때문에 한 칸 띄어 출력합니다.
원문 코드 셀 69번출력 계산
문항 15. 가변 인수로 길이 합 출력
작은 성공 힌트: 각 문자열의 길이를 모두 더합니다.
#22
def f(*a):
t=0
for i in a:t+=i
return t
s={
'1. 진로 설계',
'2. 자기 분석',
'3. 직업 데이터 구조화',
'4. 관련성 탐색',
'5. 시각화'}
d={i:len(i)for i in s}
print(f(*d.values()))
print(f(*d.values()))의 출력으로 알맞은 것은?
정답: C. 44 각 항목 문자열의 길이 합이 44입니다. *d.values()는 길이값들을 f의 가변 인수로 풀어 전달합니다.
원문 코드 셀 70번출력 이유
문항 16. 빈 문자열 포함 길이 정렬 후 출력
작은 성공 힌트: 빈 문자열 길이 0 다음에는 길이 1인 문자열이 옵니다.
#23
def f(**k):
return k
t=f(
문제정의="무엇을 예측할지 정한다",
데이터준비="데이터 구조와 품질 확인",
전처리="결측치 스케일 문제 해결",
모델학습="패턴 학습",
평가="테스트 성능 측정",
튜닝="성능 개선 실험"
)
s={'1','proof','abcd','23','987', ''}
d={i:len(i)for i in s}
l=sorted(d.items(),key=lambda x:x[1])
k=list(t.keys())
print(t[k[l[1][1]]])
이 코드 셀에서 최종적으로 '데이터 구조와 품질 확인'이 출력되는 이유로 알맞은 것은?
정답: B. l[1][1]이 1이 되어 k[1]인 데이터준비 항목을 선택하기 때문 길이 오름차순 정렬에서 l[1][1]은 1입니다. k=list(t.keys())에서 k[1]은 데이터준비이므로 해당 값 '데이터 구조와 품질 확인'이 출력됩니다.
원문 코드 셀 71번정렬 출력
문항 17. 문자열 key 정렬 후 출력
작은 성공 힌트: 이번 정렬 기준은 길이가 아니라 x[0], 즉 문자열 자체입니다.
#24
t={
1:('단계','의미'),
2:('데이터 준비','문제지와 정답지 분리'),
3:('데이터 분리','학습용과 테스트용 분리'),
4:('모델 생성','학습할 모델 객체 생성'),
5:('학습','데이터 패턴 학습'),
6:('예측','새 데이터 결과 예측'),
7:('평가','예측과 정답 비교')
}
s={'1','proof','abcd','23','987', ''}
d={i:len(i)for i in s}
l=sorted(d.items(),key=lambda x:x[0])
print(t[int(l[5][1])][1])
이 코드 셀에서 출력되는 값으로 알맞은 것은?
정답: A. 데이터 패턴 학습 문자열 key 기준 정렬 후 l[5][1]은 길이 5가 되고, t[5][1]은 '데이터 패턴 학습'입니다.
원문 코드 셀 72번출력 제어
문항 18. break가 만드는 출력 범위
작은 성공 힌트: key가 2일 때만 출력하고 곧바로 반복을 멈춥니다.
#25
tiger = {
1: ('종류', '판단방식'),
2: ('단순 반사', '현재 입력에만 반응'),
3: ('모델 기반', '현재 입력, 내부 상태 고려'),
4: ('목표 기반', '목표 달성 여부 고려'),
5: ('효용 기반', '효율·위험·만족도 비교')
}
for key, (kind, method) in tiger.items():
if key == 2:
print(kind)
break
이 코드 셀에서 출력되는 내용으로 알맞은 것은?
정답: B. 단순 반사 반복 중 key==2가 되는 순간 kind인 '단순 반사'를 출력하고 break로 반복을 종료합니다.
원문 코드 셀 75번출력 순서
문항 19. 도형 객체 리스트의 두 줄 출력
작은 성공 힌트: 리스트 l의 첫 객체는 C(5), 두 번째 객체는 Q(4)입니다.
#28
from abc import ABC,abstractmethod
class S(ABC):
@abstractmethod
def a(s):
pass
class C(S):
def __init__(s,r):
s.r=r
def a(s):
return 3.14*(s.r**2)
class Q(S):
def __init__(s,x):
s.x=x
def a(s):
return s.x*s.x
l=[C(5),Q(4)]
for s in l:
print(f"도형의 넓이: {s.a()}")
이 코드 셀의 출력 순서로 알맞은 것은?
정답: A. 도형의 넓이: 78.5 → 도형의 넓이: 16 C(5)는 3.14*(5**2)=78.5를 반환하고, Q(4)는 4*4=16을 반환합니다. 리스트 순서대로 두 줄 출력됩니다.
원문 코드 셀 76번두 번째 출력
문항 20. 파일 커서 위치 출력
작은 성공 힌트: 10번 위치에서 4글자를 읽으면 커서는 14 위치가 됩니다.
#29
with open('seek_test.txt','w',encoding='utf-8') as f:
f.write("0123456789abcdef")
with open('seek_test.txt','r+',encoding='utf-8') as f:
f.seek(10)
d=f.read(4)
print(f"10번 위치에서 읽은 데이터: {d}")
print(f"현재 커서 위치: {f.tell()}")
f.seek(0)
f.write("Hello")
이 코드 셀의 두 번째 출력으로 알맞은 것은?
정답: C. 현재 커서 위치: 14 f.seek(10) 후 f.read(4)를 실행하면 커서가 14로 이동합니다. 두 번째 print는 현재 커서 위치: 14를 출력합니다.
원문 코드 셀 77번예외 출력
문항 21. 파일이 없을 때의 예외 출력
작은 성공 힌트: 이 코드 셀 안에서는 hello.txt를 새로 만들지 않고 바로 읽으려고 합니다.
#30
def r(f,o,n):
try:
with open(f,'r',encoding='utf-8') as x:
t=x.read()
t=t.replace(o,n)
with open(f,'w',encoding='utf-8') as x:
x.write(t)
print(f"'{o}'가 '{n}'로 변경되었습니다.")
except FileNotFoundError:
print("파일이 없습니다.")
r('hello.txt','홍길동','인수샘')
hello.txt가 없는 상태에서 이 코드 셀을 독립적으로 실행할 때 출력으로 알맞은 것은?
정답: A. 파일이 없습니다. 읽기 모드 'r'로 hello.txt를 열려고 하지만 파일이 없으면 FileNotFoundError가 발생하고 except 블록의 '파일이 없습니다.'가 출력됩니다.