function
는 일정한 작업을 수행하는 코드블럭이다.함수를 사용하는 이유는?
반복되어 계속 사용되는 코드들을 함수로 정의하여 효과적으로 사용하기위해서.
함수로 정리하여서 코드의 가독성을 높이기 위해.
다시 사용할수 있고, 유지보수를 편리하게 하기위해.
파이썬에서 함수는 def
키워드를 사용하여 정의되며 아래와 같은 문법을 가진다.
def 함수명(parameter):
문장1
문장2
...
문장N
[return 리턴값]
def
키워드를 사용하여 정의한다.def say_hello():
print("Hello, world!")
위에 코드를 보면 'say_hello' 라는 이름을 가진 함수가
"Hello, world!" 라는 문자열을 출력하는 단순한 기능을 갖고있다.
함수가 수행할 코드의 블럭은 한 칸 들여쓰기(4칸)로 구분되어야 한다.
()
를 이용하여 호출한다.def say_hello():
print("Hello, world!")
# 함수 호출하기
say_Hello() # Hello,world!
arg
로 줄여서 사용한다.)하나의 매개변수를 가질 때
def say_hellow(text):
print(text)
say_hellow('Hellow!') # Hellow!
여기서 함수를 정의할때 사용한 text
를 매개변수 또는 parameter라고 하고,
함수를 호출할때 입력한 문자열 Hellow
를 함수의 인자 또는 argument 라고 한다.
두개의 매개변수를 가질 때
def add_num(a, b):
print(a + b)
add_num(2, 5) # 7
위에 함수는 입력받은 두 숫자의 합 (a + b)
를 출력한다.
함수를 정의할 때는 매개변수(parameter)를 몇 개든지 사용할 수 있지만, 그 만큼함수를 호출할 때 정의한 매개변수와 같은 개수의 인자(argument)들을 전달해야한다.
함수 정의 매개변수(parameter)갯수 = 함수 호출 (argument)갯수
매개변수(parameter)의 기본값(defalut)
def add_result(a, b = 10):
print(a + b)
add_result(7) # 17
최초 함수를 정의할 때 b = 10 과 같이 지정해주면,
2번째 매개변수 b의 기본값이 10으로 설정되어있기때문에
a = 7, b = 10 ---> a(7) + b(10) = 17 이 되는것이고,
함수를 호출때 역시 b 가 10으로 기본값이 설정되어있기에
1개의 argument(7) 만 입력하여 호출해도 된다.
매개변수(parameter)의 기본값(defalut)의 다른 유형
def add_result(a, b, c = 10):
print(a + b + c)
add_result(5, 7, 20) # 32
매개변수(parameter)의 기본값이 최초 함수정의시 지정되어있더라도,
호출할 때 3번째 인자(argument)로 20을 입력하면 새로운 값이 저장된다.
임의 개수의 매개변수(parameter)
def add_all(*args):
print(args)
a = 0 # 최초 a를 0으로 초기화
for x in args:
a = a + x
print(a)
add_all(1, 2, 3) # (1, 2, 3) 6
add_all(1, 2, 3, 4, 5, 6, 7) # (1, 2, 3, 4, 5, 6, 7) # 28
함수를 정의하는 시점에 입력할 매개변수의 개수가 정해지지 않았을 대는 *args
와 같이 표시해주면, 입력 인자(argument)들을 튜플(tuple)의 형태로 만들어준다.
*args
를 출력하면 (1, 2, 3)
또는 (1, 2, 3, 4, 5, 6, 7)
와 같이 출력된다.
함수의 반환값 'return' 사용
파이썬 키워드 return
을 이용하여 함수의 반환값을 얻을 수 있다.
def add_num(a, b):
result = a + b
return result
print(add_num(10, 5)) # 15
def add_num(a, b):
return a + b
print(add_num(10, 5)) # 15
함수를 정의할 때, 매개변수(parameter)와 반환값(return)은 없어도 된다.
또한 입력 parameter 만 있고 return이 없어도 되고,
입력 parameter 가 없고 return만 있어도 된다.
아래 예시를 보자.
def say_hellow():
print('Hello, world!')
def add_two_num(a, b):
print(a + b)
def return_true()
return True
def return_add_two_num(a, b):
return a + b
say_hello() # Hello, world!
add_two_num(10, 5) # 15
print(return_true()) # True
print(return_add_two_num(10, 5)) # 15
. Reference
https://wikidocs.net/24
https://suwoni-codelab.com/python%20%EA%B8%B0%EB%B3%B8/2018/03/04/Python-Basic-function/