파이썬 함수

Yeonu·2020년 11월 21일
1

Python 이론

목록 보기
16/30
post-thumbnail

함수(function)

특정 용도의 코드를 한 곳에 모아 놓은 것을 뜻한다.
함수의 장점 :
코드의 용도를 구분할 수 있다.
코드를 재사용할 수 있다.
실수를 줄일 수 있다.


함수 생성 방법 :

def 함수이름():
     코드

def는 define의 약자다.

함수 호출하기

함수()

반복문에 사용했던 pass를 함수에도 사용할 수 있다.


덧셈 함수

>>> def add(a, b): # 매개변수 두개 지정
...     print(a + b)
...
>>> add(10, 20) # 호출하며 매개변수 값을 준다.
30

함수를 호출할 때 넣는 값을 인수(argument)라고 부른다. add(10, 20)에서 10과 20이 인수다.



함수 독스트링 사용하기

함수의 :(콜론) 바로 다음 줄에 """ """(큰따옴표 세 개)로 문자열을 입력하면 함수에 대한 설명을 넣을 수 있다. 이런 방식의 문자열을 독스트링(문서화 문자열, documentation strings, docstrings)이라고 한다. 단, 독스트링의 윗줄에 다른 코드가 오면 안 된다.

def 함수이름(매개변수):
   """독스트링"""
   코드

def 함수이름(매개변수):
   """
   여러 줄로 된 
   독스트링
   """
   코드

독스트링을 출력하려면 print(add.__doc__)와 같이 함수의 __doc__을 출력하면 된다.

help에 함수를 넣으면 함수의 이름, 매개변수, 독스트링을 도움말 형태로 출력해준다.


함수 결과 반환하기

return을 사용한다.

>>> def add(a, b):
...     return a + b
...
>>> x = add(10, 20)
>>> x
30

# 변수를 사용하지 않고 바로 다른 함수에 넣어 사용할 수도 있다.
>>> print(add(10, 20))
30

return으로 함수 중간에서 빠져나올 수 있다. 다음은 매개변수 a가 10이면 함수를 그냥 빠져나온다.

>> def not_ten(a):
...     if a == 10:
...         return
...     print(a, '입니다.', sep='')
...
>> not_ten(5)
5입니다.
>> not_ten(10)
>> 



함수에서 값을 여러 개 반환하기

>>> def add_sub(a, b):
...     return a + b, a - b
...
# 튜플이 변수 여러 개에 할당되는 특성을 이용한 것이다(언패킹).
>>> x, y = add_sub(10, 20)
>>> x
30
>>> y
-10

#변수에 넣지 않고 바로 출력할 경우 튜플에 값이 들어간디.
>>> x = add_sub(10, 20)
>>> x
(30, -10)



함수의 호출 과정

파이썬에서는 스택과 방향이 반대인데, 함수가 아래쪽 방향으로 추가되고 함수가 끝나면 위쪽 방향으로 사라진다.

처음부터 끝까지 돈 후 다시 함수 mul까지 호출한 후 안으로 들어가 return c까지 실행하면 함수 mul의 스택 프레임이 만들어지고 매개변수 a와 b 그리고 변수 c가 들어간다.
줄 9 print(d)까지 실행해서 함수 mul을 끝내고 함수 add로 되돌아긴다. 이렇게 하면 mul에서 반환한 반환값 200이 변수 d에 저장되며 add의 스택 프레임에 들어간다. mul은 끝났으므로 스택 프레임도 사라진다.

그다음에 줄 13 add(x, y)까지 실행해서 함수 add를 끝낸다. 이렇게 하면 add의 스택 프레임도 사라진다.

0개의 댓글