python 함수 실습문제 정리
23 May 2018 | python scope lambda closure decorator generator패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
이 포스팅에서는python
함수 실습문제를 다시 정리해봅니다.
1.매개변수로 문자열을 받고, 해당 문자열이 red면 apple을, yellow면 banana를, green이면 melon을, 어떤 경우도 아닐 경우 I don’t know를 리턴하는 함수를 정의하고, 사용하여 result변수에 결과를 할당하고 print해본다.
fruit_dict = {
'red':'apple',
'yellow':'banana',
'green':'melon',
}
def print_fruit_name(color):
return fruit_dict.get(color, 'i don\'t know')
2.1번에서 작성한 함수에 docstring을 작성하여 함수에 대한 설명을 달아보고, help(함수명)으로 해당 설명을 출력해본다.
fruit_dict = {
'red':'apple',
'yellow':'banana',
'green':'melon',
}
def print_fruit_name(color):
'이 함수는 색깔을 물어보면 해당 과일의 이름을 출력해줍니다.'
return fruit_dict.get(color, 'i don\'t know')
>>> help(print_fruit_name)
3.한 개 또는 두 개의 숫자 인자를 전달받아, 하나가 오면 제곱, 두개를 받으면 두 수의 곱을 반환해주는 함수를 정의하고 사용해본다.
def square_or_multi(a, b=None):
if b:
return a*b
else:
return a**2
# 더 간단한 방식으로 (이중제어문)
def square_or_multi(a, b=None):
return a*b if b else a**2
# 혹은
def square_or_multi(*args):
if len(args) == 2:
return args[0] * args[1]
else:
return args[0] ** 2
# 더 간단하게
def square_or_multi(*args):
if len(args) == 2:
return args[0] * args[1]
return args[0]** 2
4.두 개의 숫자를 인자로 받아 합과 차를 튜플을 이용해 동시에 반환하는 함수를 정의하고 사용해본다.
def plus_and_minus(a,b):
return (a+b, a-b)
# 둘다 모두 양수로 출력하고 싶다면
def plus_and_minus(a,b):
if a > b :
sub = a-b
else:
sub = b-a
return (a+b, sub)
# 이중 제어문을 사용하면
def plus_and_minus(a,b):
return (a+b, a-b if a>b else b-a)
5.위치인자 묶음을 매개변수로 가지며, 위치인자가 몇 개 전달되었는지를 print하고 개수를 리턴해주는 함수를 정의하고 사용해본다.
def print_args(*args):
print('args의 갯수: {}개'.format(len(args)))
return len(args)
6.람다함수와 리스트 컴프리헨션을 사용해 한 줄로 구구단의 결과를 갖는 리스트를 생성해본다.
[(lambda a,b : '{} x {} = {}'.format(a,b, a*b)) (x,y) for x in range(2,10) for y in range(1,10)]