wikidocs.net을 보며 파이썬 함수에 대해 배워보자. 아래 정리된 글은 점프투 파이썬의 내용을 지금 내 현실에 맞게 요약한 내용이다.
wikidocs는 파이썬에 대해 아무것도 모르는 나같은 초보자에게 적합한 웹사이트니 자주 활용하기로 한다. 점프 투 파이썬이라는 책 내용이 수립되어 있고 초보자를 위한 파이썬 300제에 가면 기초 문제들도 많이 있다.
함수란?
함수는 어떠한 입력값을 입력했을때 그 일을 수행한 다음에 결과값을 뱉어준다.
함수를 사용하는 이유는 여러가지가 있지만 반복되는 코딩이 있을때와 긴 프로그램을 기능별로 나누어 프로그램의 흐름을 일목요연하게 볼 수 있다는 장점 두가지가 가장 크다.
함수의 구조
def 함수명(매개변수):
<수행할 문장1>
<수행할 문장2>
여기서 def는 예약어라고 한다.
예제)
def add(a, b): # a, b는 매개변수
return a+b
print(add(3, 4)) # 3, 4는 인수
위에 add()라는 함수를 만들었다. 이 함수는 a와 b 값을 받아서 그 둘의 합을 리턴해주는 함수이다.
사용법은 여러가지가 있겠지만 대표적으로는 아래와 같이 정리한다.
여기서 매개변수와 인수라는 개념이 등장하는데 아래와 같이 정리한다.
값이 여러개인 함수를 작성하는 경우
def 함수이름(*매개변수):
<수행할 문장>
....
예제)
#part1
def add_many(*args):
result = 0
for i in args:
result = result + i
return result
#part2
>>> result = add_many(1,2,3)
>>> print(result)
6
>>> result = add_many(1,2,3,4,5,6,7,8,9,10)
>>> print(result)
55
part1는 함수를 지정한 것이고 part2는 해당 함수를 인수와 함께 사용한 예이다.
위의 예제 처럼 *args
형식으로 매개변수 앞에 *
을 붙이면 입력값을 전부 모아 튜플로 만들어 준다.
part2 처럼 add_many(1,2,3)을 입력했을때 *args
가 (1,2,3)을 모두 지정받고 함수가 작동한다.
함수와 키워드 매개변수 그리고 딕셔너리
예제)
part1
def print_kwargs(**kwargs):
print(kwargs)
part2
>>> print_kwargs(a=1)
{'a': 1}
>>> print_kwargs(name='foo', age=3)
{'age': 3, 'name': 'foo'}
위와같이 **kwargs
처럼 매개변수명 앞에 **
를 붙이면 keyword arguments, 즉 키워드 매개변수를 지정할 수 있다.
part2를 보면 알 수 있듯이 키워드 매개변수를 사용한 함수는 = 기호를 기준으로 좌측값은 key 값으로 우측값은 value값으로 저장하여 딕셔너리를 만든다.