2018년 2학기 공업수학 중간고사 시험지


이름:

```

**학번**:

```

문제1.

다음 코드의 출력된 결과를 답하여라. a = [1, 2, [[3, 4], 5, 6, 7], (8, 9)]

1) 다음 코드의 출력된 결과를 답하여라.

(1) a[0:2]


(2) a[-1]


2) 3을 출력하는 코드를 작성하라.




.

문제2.

삼각형의 밑변의 길이와 높이를 입력받아 삼각형의 넓이를 구하는 코드를 아래와 같이 작성하였는데, 오류가 났다. 어디에서 오류가 발생하였는지를 표시한 후, 그 이유를 간단히 설명하고, 오류가 없도록 코드를 수정하여라.


a = input("삼각형의 밑변의 길이를 입력하세요: ")
b = input("삼각형의 높이의 길이를 입력하세요: ")

c = ab/2
print("삼각형의 넓이는", c, "입니다.")


문제3.

아래의 제시된 100을 입력한 값으로 나누는 코드를 완성하여라. 이때, 0을 입력한 경우에는 '0이 아닌 숫자를 입력하세요.', 숫자가 아닌 값을 입력한 경우에는 '숫자를 입력하세요.'를 출력하도록 만들어라.

(참고 : ZeroDivisionError, ValueError)


input_number = input("A number to divide 100: ")

(1)_______________
    number = (2) _______________
    print("100을 입력한 값으로 나눈 결과는", 100/number, "입니다.")

(3)_______________
    print("0이 아닌 숫자를 입력하세요.")

(4)________________
    print("숫자를 입력하세요.")

(1)


(2)


(3)


(4)

문제 4.

'Seoul_pop.csv' 파일에 아래와 같은 자료가 저장되어 있다.

### 1990년부터 5년 간격으로 측정된 서울시 인구수
# 연도, 인구수

1990   10,603,250
1995   10,217,177
2000    9,853,972
2005    9,762,546
2010    9,631,482

위 파일을 읽어서 서울의 인구 변화 추이를 선그래프로 나타내고자 코드를 작성하였다.



import matplotlib.pyplot as plt
import csv

year_list = []
seoul_pop_list = []

with open('Seoul_pop.csv') as f:
    reader = csv.reader(f)
    for line in reader:
        if line[0] == '#' or len(line) == 0 :
            continue
        else:
            year_list.append(line[0])
            seoul_pop_list.append(line[1])

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
plt.plot(year_list, seoul_pop_list, color = 'green', marker = 'o', linestyle = '-')
plt.title('Seoul Population')
plt.show()

위의 코드 중 어디에서 오류가 발생하는지를 표시한 후, 오류가 난 이유를 간단히 설명하고, 오류가 없도록 코드를 수정하여라.

문제 5.

아래는 0부터 20사이의 홀수들을 항목으로 갖는 리스트를 조건제시법으로 생성하는 방법이다.

[x for x in range(20) if x%2 == 1]

1부터 20 사이의 숫자들 중 3의 배수이거나 3으로 끝나는 숫자들의 제곱을 항목으로 갖는 리스트를 조건제시법으로 생성하는 코드를 작성하여라.


문제 6.

아래와 같은 문장이 있다.

python = "Python is a general-purpose programming language."

위 문장을 아래와 같이 만드는 코드를 작성하라.

python_list = ['PYTHON', 'IS', 'A', 'GENERAL-PURPOSE', 'PROGRAMMING', 'LANGUAGE']


문제 7.

문제 6에서 생성한 python_list에 들어 있는 문자열 중에서 길이가 8 이상인 것들만 리스트 형태로 출력되도록 만들어라


문제 8.

record_list.txt 파일은 여덟 명의 수영 선수의 50m 기록을 담고 있다.

player1 21.09
player2 20.32
player3 21.81
player4 22.97
player5 23.29
player6 22.09
player7 21.20
player8 22.16

(1) 아래 코드가 하는 일을 설명하고, 출력된 결과를 답하여라.


record_f = open('scores_list.txt', 'r')
record = record_f.read().split('\n')

record_dict = {}

for line in record:
    (name, score) = line.split()    
    record_dict[score] = name

record_f.close()
record_list = record_dict.keys()
print(sorted(record_list))


문제 9.

ab를 입력받아 ab로 나누었을 때의 몫과 나머지를 튜플로 리턴하는 함수 quotient_remainder()를 구현하라.


문제 10.

기상청에서 날씨 정보를 확인하는 프로그램을 작성하고자 한다. 먼저 기상청 정보를 담고 있는 아래 사이트의 소스 코드를 읽어 온다.


import urllib.request

page = urllib.request.urlopen("http://www.weather.go.kr/weather/forecast/mid-term-rss3.jsp?stnId-108")
text = page.read().decode("utf8")

읽어 온 소스코드 내용의 앞 부분을 확인하면 다음과 같다.

'<?xml version="1.0" encoding="utf-8" ?>\r\n<rss version="2.0">\r\n<channel>\r\n<title>기상청 육상 중기예보</title>\r\n<link>http://www.kma.go.kr/weather/forecast/mid-term_01.jsp</link>\r\n<description>기상청 날씨 웹서비스</description>\r\n<language>ko</language>\r\n<generator>기상청</generator>\r\n<pubDate>2018년 09월 12일 (수)요일 06:00</pubDate>\r\n <item>\r\n<author>기상청</author>\r\n<category>육상중기예보</category>\r\n<title>전국 육상 중기예보 - 2018년 09월 12일 (수)요일 06:00 발표</title>\r\n<link>http://www.kma.go.kr/weather/forecast/mid-term_01.jsp</link>\r\n<guid>http://www.kma.go.kr/weather/forecast/mid-term_01.jsp</guid>\r\n<description>\r\n\t<header>\r\n\t\t<title>전국 육상중기예보</title>\r\n\t\t<tm>201809120600</tm>\r\n\t\t<wf><![CDATA[기압골의 영향으로 15일은 전국(제주도 제외)에 비가 오겠고, 그 밖의 날은 고기압의 영향으로 대체로 맑겠습니다.<br />기온은 평년(최저기온: 11~20℃, 최고기온: 23~27℃)과 비슷하거나 조금 높겠습니다.<br />강수량은 평년(3~9mm)보다 조금 많겠습니다.]]></wf>\r\n\t</header>\r\n\t<body>\r\n\t\t\t\t\r\n\r\n\t\t<location wl_ver="3">\r\n\t\t\t\t<province>서울ㆍ인천ㆍ경기도</province>\r\n\t\t\t\t<city>서울</city>\r\n\t\t\t\t\r\n\t\t\t\t<data>\r\n\t\t\t\t\t<mode>A02</mode>\r\n\t\t\t\t\t<tmEf>2018-09-15 00:00</t'

아래의 코드를 완성하여 최고 기온을 출력하여라.

where_s = 

where_e = 

text_weather = 

print("오늘의 최고 기온은", text_weather, "℃입니다.")









.