마법 상자, 함수

지금까지 우리는 한 줄씩 명령을 내려왔습니다. 그런데 만약 자주 사용하는 명령 뭉치가 있다면 어떨까요? 매번 똑같이 치기는 너무 귀찮겠죠.

이럴 때 사용하는 것이 바로 함수입니다. 함수는 일련의 명령들을 하나로 묶어놓은 마법 상자와 같습니다.


함수 만들기 (def)

함수를 만들 때는 “정의하다”라는 뜻의 define에서 따온 def를 사용합니다.

Pycharm에 입력해보세요.

def say_hello():
    print("안녕하세요!")
    print("파이썬 코스에 오신 걸 환영합니다.")

# 함수 사용하기 (호출)
say_hello()

이걸 한국어 번역해보면 이렇습니다.

say_hello라는 이름의 마법 상자를 정의한다:
    "안녕하세요!"라고 출력
    "파이썬 코스에 오신 걸 환영합니다."라고 출력

(정의 끝)

이제 say_hello 상자를 열어라(사용해라)!

상자를 한 번만 만들어두면, 이제 say_hello()라고만 써도 상자 속의 모든 명령이 실행됩니다.


재료를 넣는 함수 (매개변수)

자판기에 동전을 넣으면 음료수가 나오듯, 함수에게도 무언가 재료를 전달할 수 있습니다.

def greet(name):
    print("반가워요,", name, "님!")

greet("홍길동")
greet("파이썬")

번역:

greet라는 마법 상자를 정의한다 (재료 이름은 name이라고 부를게):
    "반가워요,"와 name 내용물, "님!"을 합쳐서 출력

(정의 끝)

greet 상자 사용 (재료는 "홍길동")
greet 상자 사용 (재료는 "파이썬")

결과:

반가워요, 홍길동 님!
반가워요, 파이썬 님!

결과를 돌려주는 함수 (return)

마법 상자가 일을 끝내고 결과를 우리에게 다시 돌려줄 수도 있습니다. 이때 return을 사용합니다.

def add(a, b):
    return a + b

result = add(10, 20)
print("결과는:", result)

번역:

add라는 마법 상자를 정의한다 (재료는 a와 b):
    a와 b를 더한 값을 바깥으로 돌려준다(return)

(정의 끝)

add 상자에 10과 20을 넣어서 나온 결과를 result라고 외워라
result를 출력

왜 함수를 쓰나요?

  1. 귀찮음을 줄여줍니다: 똑같은 코드를 여러 번 쓸 필요가 없어요.
  2. 코드가 깔끔해집니다: 긴 코드를 이름표(함수명)가 붙은 상자에 담아두니 보기에 편합니다.
  3. 수정이 쉽습니다: 상자 속 내용물만 바꾸면, 그 상자를 쓰는 모든 곳이 한꺼번에 바뀝니다.

이제 여러분은 나만의 마법 상자를 만드는 제작자가 되었습니다!