본문 바로가기

STUDY/Python

[데이터 과학을 위한 파이썬 프로그래밍_2판] 2. 변수와 자료형

이 챕터의 내용은 딱히 정리할 게 없으므로, 연습문제만 풀이하겠습니다.

 

1. 다음과 같은 코드 작성 시, 빈 칸에 들어갈 수 없는 코드를 고르시오

 - 입력

a=20
b='10'
print(빈칸)

 - 출력

True

① a <= b     ② a != int(b)     ③ str(a) != b     ④ a is not int(b)     ⑤ int(a) >= int(b)

 

 - 답 및 해설

① a <= b

=> a는 int형, b는 str형 데이터이기 때문에 자료형을 서로 일치시키지 않으면 서로 비교할 수 없다. 

 

 

 

2. 다음 중 변수를 메모리에서 삭제하기 위해 사용하는 명령어는?

① remove     ② clear     ③ del     ④ pop     ⑤ delete

 

- 답 및 해설

③ del

a=3
print(a)

del a
print(a)
3
Traceback (most recent call last):
  File "C:\Users\quddu\workspace\a=3.py", line 5, in <module>
    print(a)
NameError: name 'a' is not defined

 

 

3. 입력받은 섭씨온도를 화씨온도로 변환하는 프로그램을 코딩하려 한다. 코드 순서를 바르게 나열한 것은?

(1) fahrenheit = ((9/5)*celsius)+32
(2) celsius=input('섭씨온도를 입력하세요 : ')
(3) print('섭씨온도:', celsius, '화씨온도:', fahrenheit)
(4) celsius = float(input('섭씨온도를 입력하세요 : '))

① 4-2-3     ② 4-3-1     ③ 1-2-3     ④ 4-1-3     ⑤ 2-1-3

 

- 답 및 해설

④ 4-1-3

# 입력
celsius = float(input('섭씨온도를 입력하세요 : '))
fahrenheit = ((9/5)*celsius)+32
print('섭씨온도:', celsius, '화씨온도:', fahrenheit)

# 출력
섭씨온도를 입력하세요 : 32
섭씨온도: 32.0 화씨온도: 89.6

 

 

4. 다음 중 파이썬의 변수명으로 적절치 않은 것은?

① ABC1982     ② abc1982     ③ 1982abc     ④ abc_23     ⑤ _23abc

 

- 답 및 해설

⑤ _23abc.

=> 파이썬에는 변수명 맨 앞에 언더바(_)가 올 수 없다.

 

 

 

5. box = "apple"의 뜻은?

① box 변수의 이름은 apple이다.

② box 변수에 apple 값을 넣어라

③ box 변수와 apple은 같다

④ box 변수는 apple이다

⑤ apple 변수는 box이다.

 

- 답 및 해설

② box 변수에 apple 값을 넣어라

=> box = "apple"이란, box라는 변수를 메모리 공간에 할당받은 후 "apple"이라는 데이터를 box에 저장하라는 명령어다. " "로 작성하는 경우 str형으로 작성되므로 타입은 문자열. 

 

 

6. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

a="1.5"
b=4
print(a*b)

① 에러 발생     ② 1.51.51.51.5     ③ 6.0     ④ 6     ⑤ "6"

 

- 답 및 해설

② 1.51.51.51.5 

=> a에는 "1.5"라는 문자열이 저장되어 있고, b에는 4라는 정수가 저장되어 있다. 문자와 정수의 곱연산은 문자를 정수만큼 반복하라는 의미이므로, 1.5라는 문자열이 4번 반복된 형태의 문자열이 출력된다.

 

 

 

7. 변수(variable)에 대한 설명으로 틀린 것은?

 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간이다.

② 선언되는 순간 메모리의 특정 영역에 공간이 할당된다.

 변수에 할당된 값은 하드디스크에 저장된다.

④ A = 8은 “A는 이다”라는 뜻이 아니다.

⑤ ‘2x+7y’는 14라고 하면, 이 식에서 x와 y가 변수이다.

 

- 답 및 해설

 변수에 할당된 값은 하드디스크에 저장된다.

=> 하드디스크가 아니라 메모리 공간에 저장된다.

 

 

 

8. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

53 % 10

① 0.53     ② 530     ③ 512     ④ 3     ⑤ 5

 

- 답 및 해설

④ 3

=> 53과 10은 모두 정수(int)형 데이터고, %는 정수를 정수로 나눴을 때 나머지를 반환해주는 연산자이므로 실행 결과는 3.

 

 

 

9. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

a="10"
b="40"
print(type(float(a/b)))

① <class 'float'>     ② <class 'int'>     ③ <class 'str'>     ④ TypeError     ⑤ 025

 

- 답 및 해설

④ TypeError

=> print(type(float(a/b))) 은 다음 순서대로 실행된다.  a/b -> float(a/b) -> print(type(float(a/b)))

맨 처음으로 실행되는 a/b는, a와 b가 모두 str형 데이터기 때문에 TypeError를 일으키며 실행되지 않고, 그 뒤도 마찬가지.

 

 

 

10. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은?

a=572
print(type(a))

① <class 'integer'>     ② <class 'int'>     ③ <class 'str'>     ④ <class 'string'>     ⑤ <class 'float'>

 

- 답 및 해설

② <class 'int'>

# 입력
a=572
print(type(a))

# 출력
<class 'int'>

 

 

 

11. 다음과 같은 코드 작성 시, 빈 칸에 알맞은 코드를 고르시오

# 입력
a='3'
b='2.1'
print(빈칸)

# 출력
2.12.12.1

① int(a)*b     ② a*b     ③ a*int(b)     ④ int(a)*int(b)     ⑤ float(a)*b

 

-답 및 해설

① int(a)*b 

=> 출력값은 2.1이라는 문자열, 즉 b가 3번 반복되는 형태의 문자열이다. a를 int형으로 바꿔주고 곱하면 된다.

 

 

 

13. 다음과 같이 코드를 작성했을 때 실행 결과로 알맞은 것은?

x=15
x=x+5
print(x)

① 15     ② 20     ③ x+5     ④ 5     ⑤ "print x"

 

- 답 및 해설

② 20

=> x라는 변수에 15라는 int형 데이터가 할당된다 -> x와 5를 더한 값, 즉 20이 다시 x라는 변수에 할당된다 -> print(x)

 

 

14. 다음과 같은 코드 작성 시, 빈 칸에 알맞은 코드를 고르시오

# 입력
a=10
b=30
c=10.5
print(빈칸)

# 출력
30010.5

str(a*b)+str(c)

② str(a)+str(b)+str(c)

a*b+st(c)

④ int(a)+str(b)+str(c)

⑤ a+b+c

 

- 답 및 해설

 str(a*b)+str(c)

=> 우선 a, b는 int형, c는 float형 데이터다. 출력값은 300이라는 str형 데이터와 10.5라는 str형 데이터의 합으로 나타낼 수 있고, 300은 30과 10을 곱해주면 된다.

# 입력
a=10
b=30
c=10.5
print(str(a*b)+str(c))

# 출력
30010.5

 

 

 

15. 다음과 같이 코드를 작성했을 때 실행 결과로 알맞은 것은?

x=1
x+=5
x=x+5
print(x)

① 10     ② 1     ③ 5     ④ 15     ⑤ 11

 

-답 및 해설

 11

=> x += 5는 x = x+5와 같은 의미를 갖는다. 비단 + 뿐만 아니라 -, * / 등등의 연산자에도 동일하게 적용된다.

x=1 : x에 1을 할당 

x += 5 : x, 즉 1에 5를 더한 값을 x에 할당.

x = x+5 : x, 즉 6에 5를 더한 값을 x에 할당.

# 입력
x=1
x+=5
x=x+5
print(x)

# 출력
11

 

 

 

 

17. 동적 타이핑의 의미를 설명하고, 예시를 제시하시오

 

- 답

: 동적 타이핑이란, 데이터의 자료형(int, str, float 등등)이 미리 결정되어있는 것이 아니라 프로그램 실행 시점에 결정되는 언어를 말다. 즉  자료형을 설정하지 않고 그냥 입력해도 자동으로 인식되어 할당된다. 예시는 아래와 같다.

# 입력
a=1
b=0.5
c='str'
d=b
print(a, type(a))
print(b, type(b))
print(c, type(c))
print(d, type(d))

# 출력
1 <class 'int'>
0.5 <class 'float'>
str <class 'str'>
0.5 <class 'float'>