[PYTHON/문제]More Complex Function Parameters

박민하·2022년 5월 29일
0

python 문제

목록 보기
15/49
post-thumbnail

문제

함수 2개를 구현해주세요. 함수의 이름은 다음과 같아야 합니다.

1.  sum_of_numbers

  함수 sum_of_numbersargument로 주어지는 모든 수를 합한 값을 return 해야 합니다.

  예를 들어, sum_of_numbers(1, 2, 3, 4, 5)15return 해야 하고 sum_of_numbers(1,2)3을 return 해야 합니다.

  만일 parameter가 주어지지 않으면 0을 return 해야 합니다.

2.  what_is_my_full_name

  what_is_my_full_name 함수는 주어진 parameter중 first_namelast_name 이라는 parameter를 조합하여 full name을 return 해주어야 합니다.

  예를 들어, first_name"우성" 이고 last_name"정" 이면 "정 우성" 라고 return 하면 됩니다.
Last namefirst name 사이에 space(빈칸)이 들어가 있어야 합니다.

  만일 last_name이 없거나 first_name이 없으면 둘 중하나만 return 하면 됩니다.

  예를 들어, last_name이 없으면 "우성" 이라고 이름만 return 하면 됩니다,

  마지막으로, last_namefirst_name 둘다 없으면 "Nobody" 라고 return 하면 됩니다.

정답

함수1. sum_of_numbers

def sum_of_numbers(*args):
    # 아래에 코드를 작성해 주세요.
    return sum(args)

  완전 껌이다ㅎㅎㅎㅎㅎㅎㅎ

함수2. what_is_my_full_name

  ?

  ???

  1번 문제는 2번 문제에서 바로 포기하지 못하기 위한 당근이었던 것인가...? 잘 기억은 안나지만 저녁에 한 3시간동안 이리붙잡고 저리붙잡고 깡생수를 들이키면서 풀다가 포기하고 다음날 다시 풀었더니 해결됐다. 아니 1번이랑 난이도 차이가 너무 나잖아;;;

def what_is_my_full_name(**kwargs):
  if "first_name" in kwargs.keys() and "last_name" in kwargs.keys():
    return kwargs["last_name"] + ' ' + kwargs["first_name"]
  elif "first_name" in kwargs.keys() and "last_name" not in kwargs.keys():
    return kwargs["first_name"]
  elif "first_name" not in kwargs.keys() and "last_name" in kwargs.keys():
    return kwargs["last_name"]
  else:
    return "Nobody"

시행착오

1. 매개변수 kwargs 의 갯수가 0보다 크면 value 값을 출력한다.

  AssertionError 은 조건이 틀렸을 때 나오는 error 라고 한다. 조건 자체가 틀려먹었군!

2. 매개변수 kwargs 의 갯수가 0일때, 1일때의 값을 지정한다.

  key 값이 last_name이랑 first_name만 있는 경우가 아닌가보다. 그래서 아예 경우의수를

  1. first_namelast_name이 key값에 있는 경우
  2. first_name이 key값에 있는 경우
  3. last_name이 key값에 있는 경우
  4. 그 외

로 설정했다. 정답은 맞았지만 좀 더 간단하게 할 수 있는 방법은 없을까? 하고 try ~except문도 사용해봤다.

3. 정답 코드에서 try ~except 문을 사용해서 두 key 값 중 존재하는 경우에만 출력되도록 수정

  오잉... 또 KeyError 발생. 나중에 이 코드를 다시 봤을 때 문제를 해결 할 수 있기를 바란다...

profile
backend developer 🐌

0개의 댓글