셀 출력 서답형 퀴즈

각 셀의 코드를 읽고 출력 결과를 직접 써 본 뒤 정답을 확인하세요.

셀 1

코드

ai1 = [
    '박',
    '구',
    '마',
    '수',
    '고'
]

ai2 = [
    'D',
    'B',
    'C',
    'A',
    'E'
]

ai3 = [
    '호',
    '대',
    '랑',
    '늑',
    '이'
]

e = [4, 3, 2, 1, 0]
d = [1, 0, 2, 4, 3]

for i in [1]:
    print(f'{ai1[i]}({ai2[e[i]]}){ai3[d[i]]}')

상세 설명

  1. ai1, ai2, ai3는 같은 위치 또는 변환 인덱스를 이용해 값을 꺼내는 리스트입니다.
  2. e와 d는 직접 출력할 위치를 바꾸는 인덱스 리스트입니다.
  3. 반복문은 for i in [1]이므로 i 값은 1 한 번만 사용됩니다.
  4. ai1[1]은 구, e[1]은 3이므로 ai2[3]은 A, d[1]은 0이므로 ai3[0]은 호입니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


구(A)호

셀 2

코드

quantum = [
    '구',
    '수',
    '마',
    '박',
    '고'
]

eng = [
    'A',
    'B',
    'C',
    'D',
    'E'
]

kor = [
    '호',
    '대',
    '랑',
    '늑',
    '이'
]

data = {
    '마': (2, 3),
    '박': (0, 1),
    '구': (1, 4),
    '수': (4, 0),
    '고': (3, 2),
}

for k in [2]:
    a, b = data[quantum[k]]
    print(f'{quantum[k]} ▷ {eng[a]} {kor[b]}')

상세 설명

  1. quantum 리스트에서 k=2 위치의 값은 마입니다.
  2. data 딕셔너리에서 data["마"]는 (2, 3)입니다.
  3. a=2, b=3으로 나누어 저장됩니다.
  4. eng[2]는 C, kor[3]은 늑이므로 형식에 맞게 출력됩니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


마 ▷ C 늑

셀 3

코드

t = '''
배/A:
마/D:
양/C:
구/F:
추/B:
고/E:
'''

u = '''
호,
리,
랑,
끼,
이,
코
'''

a = t.splitlines()[1:]
b = u.split(',')[::-1]

for i in [3]:
    k, e = a[i][:-1].split('/')
    print(f'{k}→{e}←{b[i].strip()}')

상세 설명

  1. t는 여러 줄 문자열이고 splitlines()[1:]로 첫 빈 줄을 제외한 줄 목록을 만듭니다.
  2. u는 쉼표 기준으로 나눈 뒤 [::-1]로 순서를 뒤집습니다.
  3. for i in [3]이므로 네 번째 줄인 구/F:를 선택합니다.
  4. a[i][:-1]은 마지막 콜론을 제거하고, split("/")로 구와 F를 나눕니다.
  5. 뒤집힌 b의 3번째 인덱스 값은 랑입니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


구→F←랑

셀 4

코드

ERA = {
    "고": {
        "eng": "B",
        "kor": "코",
    },

    "추": {
        "eng": "E",
        "kor": "랑",
    },

    "마": {
        "eng": "A",
        "kor": "이",
    },

    "배": {
        "eng": "F",
        "kor": "끼",
    },

    "구": {
        "eng": "C",
        "kor": "호",
    },

    "양": {
        "eng": "D",
        "kor": "리",
    }
}

a = list(ERA.items())

for i in [4]:
    k, v = a[i]
    print(f'[{k}] {v["eng"]} {v["kor"]}')

상세 설명

  1. ERA는 글자 하나를 key로 하고, eng와 kor 값을 가진 중첩 딕셔너리입니다.
  2. list(ERA.items())는 입력된 순서대로 (key, value) 쌍을 리스트로 만듭니다.
  3. for i in [4]이므로 다섯 번째 항목을 선택합니다.
  4. 다섯 번째 항목의 key는 구이고 value의 eng는 C, kor는 호입니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


[구] C 호

셀 5

코드

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(10000)
a.d(5000)
print(f"다:{a.g()}원")

상세 설명

  1. B 클래스는 금액 b를 비공개 속성 __b에 저장합니다.
  2. B(10000)을 만들 때 생성자에서 가:10000원→을 출력합니다.
  3. a.d(5000)은 __b에 5000을 더하고 나:5000원→을 출력합니다.
  4. a.g()는 현재 금액 15000을 반환합니다.
  5. 마지막 print가 다:15000원을 이어서 출력합니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


가:10000원→나:5000원→다:15000원

셀 6

코드

import pandas as pd

data = {
    'AA': ['배', '박', '호', '추'],
    'BB': [4, 7, 8, 5],
    'CC': ['a', 'b', 'd', 'c']
}

df = pd.DataFrame(data)

print(
    f"{df.iloc[3, 1]}D "
    f"{df.loc[0, 'AA']}E "
    f"{df.iloc[1, 0]}C "
    f"{df.loc[2, 'BB']}F "
    f"{df.loc[0, 'CC']}B "
    f"{df.iloc[2, 1]}H "
    f"{df.loc[3, 'AA']}G "
    f"{df.iloc[1, 2]}A "
)

상세 설명

  1. data 딕셔너리로 DataFrame df를 만듭니다.
  2. iloc은 행과 열을 숫자 위치로 선택하고, loc은 행 번호와 열 이름으로 선택합니다.
  3. df.iloc[3,1]은 4행 BB 값 5입니다.
  4. df.loc[0,"AA"]는 배, df.iloc[1,0]은 박, df.loc[2,"BB"]는 8입니다.
  5. 나머지 값도 같은 방식으로 찾아 f-string 하나로 이어 출력합니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


5D 배E 박C 8F aB 8H 추G bA

셀 7

코드

def C(f):
    def w():
        return f() + "배→"
    return w

def B(f):
    def w():
        return f() + "마→"
    return w

def E(f):
    def w():
        return f() + "추→"
    return w

def F(f):
    def w():
        return f() + "구"
    return w

def D(f):
    def w():
        return f() + "양→"
    return w

@F
@D
@B
@C
@E
def A():
    return "고:"

print(A())

상세 설명

  1. C, B, E, F, D는 함수를 받아 문자열을 뒤에 붙이는 데코레이터입니다.
  2. 데코레이터 적용은 아래에서 위로 먼저 감싸집니다: E → C → B → D → F 순서입니다.
  3. 실행할 때는 가장 바깥 F가 호출되지만 내부 함수 결과를 먼저 받아 문자열을 덧붙입니다.
  4. A()의 기본 반환값 고:에 추→, 배→, 마→, 양→, 구가 차례로 붙습니다.

서답형 퀴즈

위 코드의 출력 결과를 쓰세요.


고:추→배→마→양→구

셀 8

코드

class N:
    def __init__(s, n):
        s.n = n

    def p(s):
        for i in range(2, int(s.n**0.5) + 1):
            if s.n % i == 0:
                return 0
        return s.n > 1

    def f(s):
        n, r, d = s.n, [], 2
        while d * d <= n:
            while n % d == 0:
                r += [d]
                n //= d
            d += 1
        return r + [n] if n > 1 else r

    def r(s):
        t = "소수" if s.p() else "합성수"

        print(f'{s.n}은(는) {t}입니다.')

        if not s.p():
            print(f'{s.n} =', '×'.join(map(str, s.f())))

N(int(input("정수 n 입력: "))).r()

상세 설명

  1. N 클래스는 정수 n을 받아 소수 판별과 소인수분해를 수행합니다.
  2. p()는 2부터 √n까지 나누어 떨어지는 수가 있으면 합성수로 판단합니다.
  3. f()는 작은 수부터 반복해서 나누며 소인수를 리스트에 저장합니다.
  4. r()은 소수/합성수를 출력하고, 합성수이면 소인수분해 결과도 출력합니다.
  5. 이 HTML에서는 예시 입력을 12로 두었으므로 12의 출력 결과를 묻습니다.

서답형 퀴즈

입력값으로 12를 넣었을 때 출력 결과를 쓰세요.


12은(는) 합성수입니다. 12 = 2×2×3