데이터 과학을 위한 파이썬 프로그래밍 연습문제 해답 - deiteo gwahag-eul wihan paisseon peulogeulaeming yeonseubmunje haedab

안녕하세요 상자입니다.

개인 문제 풀이이므로 오답이 있을 수 있습니다.

오답이라 생각되는 경우 말씀 부탁드립니다!


다음 코드의 실행 결과를 쓰시오.

>>> a = 777
>>> b = 777
>>> print( a==b, a is b)

[ 정답 ] - True False

True와 False두 개가 나온다.

파이썬에서 ==는 같은 값을 갖고 있는지 비교하며, is는 같은 메모리 영역의 값을 갖고 있는지 비교한다.

또한 파이썬은 1부터 256까지의 값을 임시 메모리에 저장해서 같은 메모리 영역을 참조하지만 257을 넘어가는 정수 값 부터는 다른 메모리 영역에 저장되기 때문에 print를 찍는 경우 a==b는 같은 값인지 비교해서 참이므로 True가 나오며, a is b의 경우는 다른 메모리 영역에 저장되기 때문에 False가 나온다.

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

① del

② delete

 remove

 pop

 clear

[ 정답 : 1번 ] del은 메모리에 선언된 변수를 삭제하는 명령어이다.

빈칸에 들어갈 각각의 코드 실행 결과를 쓰시오.

>>> a = 3.5
>>> b = int(3.5)
>>> print(a**((a//b)*2))

빈칸
>>> print(((a-b)*a)//b)
빈칸
>>> b= ((( a-b)*a)%b)
>>> print(b)

빈칸
>>> print((a*4)%(b*4))
빈칸

[ 정답 ]

가 – 12.25

나 – 0.0

다 – 1.75

라 – 0.0

변수의 값이 재정의해서 3.5라는 값과 3이 입력이 되는 경우에는 (라)의 값이 2.0이 맞는 것 같습니다 하지만 문제에서 빈칸에 들어갈 각각의 코드 실행 결과를 쓰시오.라고 작성되어 있어서 순차적으로 실행이 되는 경우라고 놓고 푼다면 b를 재정의한 부분의 값을 가져오면 라는 경우 0이라 생각했습니다

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

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

[ 정답 : 4번 ] - input함수에 입력된 값은 문자열로 받는다. float형으로 형을 변환해서 계산해야 된다.

다음 변수 a의 자료형은?

 소수형

 문자형

실수형

 불린형

정수형

[ 정답 : 2번 ] - ""로 묶었기 때문에 str형 즉 문자형이 나온다.

다음과 같은 코드 작성 시, 실행 결과로 알맞게 짝지어진 것은?

>>> a = 10.6
>>> b = 10.5
>>> print(a*b)

빈칸
>>> type(a + b)
빈칸

 111.3, <class ‘int’>
 111.3, <class ‘str’>
 111.3, <class ‘float’>
④ 105.0, <class ‘int’>
⑤ 105.0, <class’float’>

[ 정답 : 3번 ] - 111.3 , <class ‘float’>이 나온다.

box ="apple"의 뜻은?

 box 변수의 이름은 apple이다.

 box 변수에 apple 값을 넣어라.

box 변수와 apple은 같다.

 box 변수는 apple이다.

apple 변수는 box이다.

[ 정답 : 2번 ]

box = "apple"이란 box라는 변수를 메모리 공간에 할당받은 후 "apple"이라는 변수를 대입해서 box에 저장하는 것입니다. ""로 작성하는 경우 str형으로 작성되므로 타입은 문자열이 됩니다.

즉 box 변수에 apple이라는 값을 넣어라라는 의미입니다.

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

>>> a = “3.5”
>>> b = 4
>>> print( a * b )

 error

3.53.53.53.5

 14.0

 14

 “14”

[ 정답 : 2번 ] ""로 값을 넣었기 때문에 실수 3.5가 아닌 문자열로 인식한다 문자열인 3.53이 4번 반복된다.

a= "3.5", b="1.5"일 때, print(a+b)의 실행 결과는?

 5

 3.51.5

 a + b

 ab

 2

[ 정답 : 2번 ] - ""안에 값이 들어가는 경우 파이썬은 자동으로 형을 선택하는데 str형으로 인식이 되므로 3.5와 1.5가 붙어서 작성된다.

다음과 같이 코드를 작성했을 때, print(a+b)의 실행 결과는?

>>> a = ‘3’
>>> b = float(a)
>>> print(b **int(a))

 TypeError

 ‘27.0’

 27.0

 27

 ‘27

[ 정답 : 3번 ] - a는 문자형으로 저장하지만 b는 실수형값인 3.0을 저장한다. **은 제곱 이므로 b의 제곱만큼인데 int(a)의 경우 a를 정수형으로 형 변환이다. 그러므로 3^3이 된다. 27값이 나온다.

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

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

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

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

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

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

[ 정답 : 3번 ] -  하드디스크에 저장되는 것이 아니라 메모리 공간에 저장된다.

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

>>> a = ’20’
>>> b = ‘4’
>>> print(type(float(a/b)))

<class ‘int’>

<class ‘str’>

 <class ‘float’>

4.3.333333333

TypeError

[ 정답 : 5번 ] - str타입과 str타입이므로 나눌 수 없다. +기호인 경우 붙어서 작성할 수 있다.

다음 코드의 실행 결과가 나오도록 빈칸에 코드를 추가하시오. (단, 변수를 삭제하면 안 됨)

>>> a = “Gachon”
>>> b = “CS”
>>> c = 200

빈칸
print(a, b, c)
Gachon CS 50

[ 정답 ] - c = int(c/4) 또는 c = c-150도 가능하다.

동적 타이핑의 의미를 설명하고, 파이썬 코드로 예시를 제시하시오.

동적 타이핑의 경우 객체 앞에 int, float형과 같이 형이 없는 상태에서 데이터를 입력하는 것입니다. 파이썬의 경우 다른 C나 Java와는 다르게 무엇을 변수에 작성될 값을 미리 정하지 않고 자동으로 인식해서 받아줍니다. 사용자가 직접 변경하기도 하지만 대부분 동적으로 할당받은 형태가 적절하게 배치됩니다.

아래의 코드를 보면

a = 1

b = a

c = 1

3개의 변수를 선언하면 모두 1이라는 객체를 참조하므로 a is b or a is c or b is c는 모두 True 값이 나옵니다. 앞에 int라고 붙이지 않았지만 a라는 객체는 1이라는 변수를 받고 b라는 변수는 a에 있는 int형의 1값을 받아옵니다 그러므로 print(a, b, c)를 입력하면 1 1 1의 값이 나옵니다. a, b, c 모두 형을 정하지 않았지만 자동으로 정수형으로 처리되어 출력된 것입니다. 이것이 동적 타이핑입니다.

다음 코드의 예상되는 실행 결과를 쓰시오.

(가) print(“1.0”*5)

(나) print(“1.0”+2)

(다) print(“Hanbit” + “Python”)

(라) print(“3.5” + “0.5”)

[ 정답 ]

가 – 1.0이 5번 반복한다

나 – 에러가 뜬다.

다 – Hanbit와 Python이 붙어서 HanbitPython가 써진다.

라 – 3.5와 0.5가 붙어서 3.50.5가 써진다.

변수명을 지을 때 권장하는 규칙 중 틀린 것은?

변수명은 알파벳, 숫자 밑줄(_) 등을 사용하여 표현할 수 있다.

 변수명은 의미 있는 단어로 쓰는 것을 권장하며, 한글도 사용할 수 있다.

 변수명은 대소문자가 구분된다.

 문법으로 사용되는 특별한 예약어는 변수명으로 쓰지 않는다.

변수명은 “a”, “b”등으로 사용하는 것을 권장하지 않는다.

수정 - 정확하게 a, b 보단 의미 있는 명칭을 변수 명으로 사용하는 것이 맞는다고 생각하지만 5번을 제외하고 정답이 없어서 골랐습니다. 

[ 정답 : 5번 ]

1, 3, 4번은 정답이다.

2번 또한 정답이 될 수 있다.

변수를 한글로 사용할 수 있으나 가능하면 영문으로 작성을 진행한다.

5번의 경우 a, b를 권장하지 않지만 스네이크 표기법(_)을 활용하여 변수 타입 int_a 형식으로 사용할 수는 있기 때문에 오답이다.

파이썬에서 반올림 오차가 나타나는 이유에 대해 설명하시오.

반올림 오차의 경우 정수에서는 오차가 문제가 되지 않는데 실수를 덧셈하거나 빼는 경우 오차가 발생하며 문제가 발생됩니다.

ex) 0.3-0.2+0.1을 연산하는 경우 0.19999999999999998값으로 표현된다.

실수의 경우 소수점이 유한하지 않고 무한하게 표기가 가능하기 때문에 컴퓨터에서 구현해서 표현할 수 있는 유한개의 개수만큼 비트 수로 작성해 준 것입니다.

근삿값이 출력되어 정확한 값이 아닌 값을 출력하기 때문에 오차 값을 가집니다.


혼자서 직접 풀고 타이핑해서 검토하는 편이라 오답 또는 오타가 있는 경우에 댓글로 남겨주시면 감사드리겠습니다.