콘텐츠로 이동

1단원 쪽지시험 정답: 데이터 타입과 변수


1번 (과제 문제 1 응용 — / vs //)

① 3.5
② 3
③ <class 'float'>
④ <class 'int'>

과제에서 10 / 5 (나누어 떨어짐)를 다뤘다면, 여기선 7 / 2 (나누어 떨어지지 않음)로 출제. /가 항상 float를 반환한다는 사실이 바뀌지 않음.


2번 (과제 문제 2 응용 — bool 산술)

① 3
② 5
③ <class 'int'>

과제에서 True + True, True * 10을 다뤘다면, 여기선 False + 3, True * 5로 출제. False = 0, True = 1 원리는 동일.


3번 (과제 문제 3 응용 — 타입 변환)

① 2
② 5
③ True
④ False
항목 결과 핵심
int(2.7) 2 반올림이 아닌 버림 (과제 int(3.9)3과 동일 원리)
int(float("5.99")) 5 float 거쳐서 int 변환, 역시 버림
bool("False") True 비어있지 않은 문자열은 모두 True (과제 bool("0")True와 동일 원리)
bool("") False 빈 문자열만 False

③이 가장 헷갈리는 문항. 문자열 "False"는 불리언 False가 아님.


4번 (과제 문제 4 응용 — 변수 재대입)

① 15
② 20
③ False

과제에서 a = a + 5를 다뤘다면, 여기선 a = a - 5로 출제. b = a 이후 a가 바뀌어도 b는 변하지 않는다는 원리는 동일.


5번 (과제 문제 5 응용 — str vs int 연산)

① 88
② 16
③ <class 'str'>
④ <class 'int'>
항목 결과 이유
"8" * 2 88 str × int → 문자열 반복
int("8") * 2 16 int × int → 산술 곱셈
type("88") <class 'str'> 문자열 반복 결과는 str
type(16) <class 'int'> 산술 곱셈 결과는 int

과제에서 / vs //로 타입 차이를 다뤘다면, 여기선 str * int vs int * int로 연산자에 따른 타입 차이 출제.