python-5


문제 5-1

두 개의 정수 값을 받아서 두 값의 평균을 구하는 함수를 작성하세요.

1
2
def mysum(a, b):
# 함수 구현
1
2
def mysum(a, b):
return (a+b) / 2.0
1
mysum(1,2)
1.5

문제 5-2

함수의 인자로 리스트를 받은 후 리스트 내에 있는 모든 정수 값에 대한 최댓값과 최솟값을 리턴하는 함수를 작성하세요.

1
2
def get_max_min(data_list):
# 함수 구현
1
2
def get_max_min(data_list):
return (max(data_list), min(data_list))
1
max_v, min_v = get_max_min([1,2,3,4,5,6])
1
print(max_v)
6
1
print(min_v)
1

문제 5-3

절대 경로를 입력 받은 후 해당 경로에 있는 *.txt 파일의 리스트 리턴하는 함수를 작성하세요.

1
2
def get_txt_list(path):
# 함수 구현
1
2
3
4
5
6
7
8
9
import os

def get_txt_list(path):
osg_list = os.listdir(path)
ret_list = []
for x in osg_list:
if x.endswith('txt'):
ret_list.append(x)
return ret_list
1
get_txt_list('/root')
[]

문제 5-4

체질량 지수 (Body Mass Index, BMI)는 인간의 비만도를 나타내는 지수로 체중과 키의 관계로 아래의 수식에 의해 계산됩니다. 여기서 중요한 점은 체중의 단위는 킬로그램 (kg)이고 신장의 단위는 미터 (m)라는 점입니다.

$BMI=체중(kg) / 신장(m)^2$

일반적으로 BMI 값에 따라서 다음과 같이 체형을 분류하고 있습니다.

1
2
3
4
BMI <18.5, 마른체형
18.5 <= BMI < 25.0, 표준
25.0 <= BMI < 30.0, 비만
BMI >= 30.0, 고도 비만

함수의 인자로 체중 (kg)과 신장 (cm)을 받은 후 BMI 값에 따라 ‘마른체형’, ‘표준’, ‘비만’, ‘고도 비만’ 중 하나의 상태를 출력하는 함수를 작성해보세요.

1
2
3
4
5
6
7
8
9
10
11
def Cal_BMI(weight, height):
height = height * 0.01
bmi = weight / (height * height)
if bmi < 18.5:
print('마른체형')
elif 18.5 <= bmi < 25.0:
print('표준')
elif 25.0 <= bmi < 30.0:
print('비만')
else:
print('고도비만')
1
Cal_BMI(63, 170)
표준
1
Cal_BMI(79, 160)
고도비만

문제 5-5

사용자로부터 키 (cm)와 몸무게 (kg)을 입력 받은 후 BMI 값과 BMI 값에 따른 체형 정보를 화면에 출력하는 프로그램을 작성해보세요. 파이썬에서 사용자로부터의 입력은 input() 함수를 사용하며, 작성된 프로그램은 계속해서 사용자로부터 키와 몸무게를 입력 받은 후 BMI 및 체형 정보를 출력해야 합니다. (무한 루프 구조)

1
2
3
4
5
6
7
8
9
10
11
12
def Cal_BMI_2(weight, height):
height = height * 0.01
bmi = weight / (height * height)
print("BMI : ", bmi)
if bmi < 18.5:
print('마른체형')
elif 18.5 <= bmi < 25.0:
print('표준')
elif 25.0 <= bmi < 30.0:
print('비만')
else:
print('고도비만')
1
2
3
h = input('Height (cm) :')
w = input('Weight (kg) :')
Cal_BMI_2(float(w), float(h))
Height (cm) :170.0
Weight (kg) :63.0
BMI :  21.79930795847751
표준

문제 5-6

삼각형의 밑변과 높이를 입력 받은 후 삼각형의 면적을 계산하는 함수를 작성하세요.

1
2
def get_triangle_area(width, height):
# 함수 구현
1
2
def get_triangle_area(width, height):
return width * height / 2.0
1
get_triangle_area(10, 5)
25.0

문제 5-7

함수의 인자로 시작과 끝 숫자가 주어질 때 시작부터 끝까지의 모든 정수값의 합을 리턴하는 함수를 작성하세요. (시작값과 끝값을 포함)

1
2
def mysum2(start, end):
# 함수 구현
1
2
def mysum2(start, end):
return sum(range(start, end+1))
1
mysum2(1, 10)
55

문제 5-8

함수의 인자로 문자열을 포함하는 리스트가 입력될 때 각 문자열의 첫 세글자로만 구성된 리스트를 리턴하는 함수를 작성하세요. 예를 들어 함수의 입력으로 [‘Seoul’, ‘Daegu’, ‘Kwangju’, ‘Jeju’]가 입력될 때 함수의 리턴 값은 [‘Seo’, ‘Dae’, ‘Kwa’, ‘Jej’] 입니다.

1
2
3
4
5
def get_Abbr(data_list):
ret = []
for x in data_list:
ret.append(x[:3])
return ret
1
get_Abbr(['Seoul', 'Daegu', 'Kwangju', 'Jeju'])
['Seo', 'Dae', 'Kwa', 'Jej']