[Python] 함수
함수란?
어떤 작업을 수행하는 코드를 모아 이름을 붙인것이다.
함수 사용 이유
1) 프로그래밍을 하다 보면 똑같은 내용을 반복해서 작성하는 경우가 있다. (재사용성)
2) 자신이 만든 프로그램을 함수화해서 알아보기 쉽게 정리 & 프로그램 흐름을 잘 파악할 수 있다. (간결성)
함수 기본적인 구조
파이썬은 함수를 정의할 때 def 문을 사용한다. (def: define 정의하다를 줄인 표현)
매개변수: 함수를 사용을 위해 입력으로 전달되는 값을 받는 변수
└인수: 함수를 호출할때 전달하는 입력값
실행구문: 함수를 실행하면 수행할 문장
반환 값: 함수 실행 후 결과값을 돌려주는 명령어

## 예시1 - add 함수 만들고 출력하기
def add(a,b):
return a+b
print(add(3,4)) # 3,4는 인수 -> 7출력
print(add(b=4,a=3)) # 매개변수 지정하여 호출 가능
## 예시2 - a,b값을 더한 결과를 출력하기(반환값 x)
def print_add(a,b):
print(a+b)
print_add(3,4) # add1 함수를 통해 7 출력
## 예시3 - hi 출력하는 함수 만들기(매개변수, 반환값 x)
def say_hi():
print("Hi!")
say_hi()
예시1에서 add 함수는 매개변수 a,b 더하는 함수고 두 수의 합(a+b)를 결과로 반환하는 함수이다. 따라서 3,4를 매개변수로 넣으면 add 함수를 통해 7을 반환받게 된다. 매개변수에 값을 지정하여 사용할 수 있다.
예시2에서 print_add 함수는 매개변수 a,b로 더한 결과를 출력하는 함수이다. 반환하는 값은 없다. 따라서 3,4를 매개변수로 놓으면 print_add 함수를 통해 두 수의 합이 출력이 된다.
예시3에서 say_hi 함수는 "Hi!"를 출력하는 함수이다. 이 함수 같은 경우는 매개변수와 반환값 모두 없다. 따라서 실행하면 "Hi!"를 출력하고 종료하게된다.
입력값이 몇 개가 될지 모를 때
입력 값이 몇 개인지 모를 때는 포인터를 활용하여서 매개변수를 넘기면 된다. (* 매개변수)
## 예시4 add_many_num 함수 만들기 (* 매개변수 사용)
def add_many_num(*args):
result=0
for i in args:
result+=i
return result
print(add_many_num(1,2,3,4,5,6)) # 1~6까지의 합이 출력된다.
print(add_many_num(1,2,3)) # 1~3까지의 합이 출력된다.
매개변수 초기값 설정하기
매개변수의 초기값을 설정할 수 있다. 초기값이란 매개변수 값이 입력되지 않았을 때 설정한 값이 자동으로 입력되는 것을 말한다.
## 예제5 - 이름 출력하기 (매개변수 초기 설정)
def print_name(name="Seung"):
print("내 이름은 {0}입니다.".format(name))
print_name("가나다") # "내 이름은 가나다입니다." 출력
print_name() # 매개변수에 값이 없음 -> "내 이름은 Seung입니다." 출력
[출처] 점프 투 파이썬