python 함수 실습문제 정리

|

패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
이 포스팅에서는 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)]