[PythonBasic] if와 def, return

Alex of the year 2020 & 2021·2020년 6월 24일
0

Python

목록 보기
1/18
post-thumbnail

만일 파이썬의 p 정도만 알고 이 문제를 만났을 경우
이 간단해 보이는 파이썬 "기본" 문제는 생각보다 간단하지 않을 것이다.

  1. '함수'의 개념을 알아야 한다.
  2. '인자'의 개념도 알아야 한다.
  3. '~이면', 즉 if 문 사용법을 알아야 한다.
  4. '리턴'의 개념도 알아야 한다.

내 경우는, 운 좋게도 자바를 먼저 배우다가 자바의 진정한 매운맛을 보기 전에 파이썬으로 넘어왔기 때문에 대강 무슨 말인지는 이해가 되는듯 했다.

A1. '함수'란 def '함수명'(인자):라고 선언하여 사용한다. 선언 이후 그 아래로 쭉 적게될 일련의 식을 재사용할 경우, '함수명' 으로만 호출할 수 있는 유용한 기능이다.

A2. 이 때 인자란 parameter 또는 매개변수라고도 부를 수 있는데, 쉽게 말해 해당 함수에 집어 넣는 값이다. 숫자가 될 수도 있고 변수가 될 수도 있다. 점프 투 파이썬에서는 과일 주스를 만들 때 사용하는 과일로 설명했다.

A3. if문의 기본식은 간단하고 직관적이라 기본식 하나만 보면 무슨 소리인지 알 수 있다.

if name=='Alex':
    print('Hi, Alex!')
elif name=='Alice':
    print('Hi, Alice!')
elif name=='Tom':
    print('Hi, Tom!')

난 처음에 elif를 보고 당연히 오타라고 생각했던 적이 있는데, else if의 줄임말이었다.
(참고로 보수적인 자바에서는 else if를 그대로 적고,
PL/SQL에서는 elsif라고 적는데 이건 정말 처음 봤을 때는 오타라고 확신했었다. 근데 오타 아님.)

A4. 지금도 살짝 헷갈리긴 하는데, 이 리턴은 '돌려준다' 혹은 '해당 함수를 호출한 곳으로 돌아간다'의 의미로 사용된다. 이 문제에서는 투입한 매개변수로 계산식을 진행한 후, 그 값을 이 함수의 최종값으로 돌려줘라는 의미로 사용되었다. (🍎 개인적으로 자바 때부터 리턴의 의미가 자꾸 헷갈려서 곧 이건 따로 블로깅할 예정)

이런 기본 개념을 머리에 숙지한 이후 내가 내놓은 답은 이렇다.

def is_okay_to_drive(who):
  if who == "son":
        return "Nope!"
  if who == "dad":
        return "Good!"
  if who == "grand father":
        return "Be careful!"
  else:
        return "Who are you?"

참 간단하지만 알고보면 많은 개념이 들어가있는 문제였다.

200625 추가

profile
Backend 개발 학습 아카이빙 블로그입니다. (현재는 작성하지 않습니다.)

0개의 댓글