마법 상자, 함수
지금까지 우리는 한 줄씩 명령을 내려왔습니다. 그런데 만약 자주 사용하는 명령 뭉치가 있다면 어떨까요? 매번 똑같이 치기는 너무 귀찮겠죠.
이럴 때 사용하는 것이 바로 함수입니다. 함수는 일련의 명령들을 하나로 묶어놓은 마법 상자와 같습니다.
함수 만들기 (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를 출력
왜 함수를 쓰나요?
- 귀찮음을 줄여줍니다: 똑같은 코드를 여러 번 쓸 필요가 없어요.
- 코드가 깔끔해집니다: 긴 코드를 이름표(함수명)가 붙은 상자에 담아두니 보기에 편합니다.
- 수정이 쉽습니다: 상자 속 내용물만 바꾸면, 그 상자를 쓰는 모든 곳이 한꺼번에 바뀝니다.
이제 여러분은 나만의 마법 상자를 만드는 제작자가 되었습니다!