풀잎스쿨 | Day 6. 함수, 위치 인수와 키워드

yeonk·2021년 9월 14일
0

python

목록 보기
14/23
post-thumbnail

20210914



1. 함수(function)

특정 용도의 코드를 한 곳에 모아 놓은 것

# 기본 형태

def 함수이름():
     코드

# 함수에 값을 넣어 작동하도록 작성하기
def 함수이름(매개변수1, 매개변수2):
    코드
     
     
# 빈 함수

def hello():
    pass



함수의 장점

  • 코드의 용도 구분

  • 코드 재사용

  • 실수를 줄임



독스트링 (docstrings)

함수의 :(콜론) 바로 다음 줄에 """ """(큰따옴표 세 개)로 문자열을 입력하면 함수에 대한 설명을 넣을 수 있음

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






return

값을 함수 바깥으로 반환.
반환값은 변수에 저장하지 않고 바로 다른 함수에 넣을 수 있음.

def 함수이름(매개변수):
    return 반환값
    

def 함수이름(매개변수):
    return 반환값1, 반환값2
    
  • return은 함수 중간에서 바로 빠져나오는 기능도 있음






함수 호출 과정

  • 프레임: 메모리에서 함수와 함수에 속한 변수가 저장되는 독립적인 공간

  • 전역 프레임(global frame): 파이썬 스크립트 전체에서 접근 가능

  • 스택(stack) 방식

    • 접시 쌓기와 같은데 접시를 차곡차곡 쌓고 꺼낼 때는 위쪽부터 차례대로 꺼내는 방식
      (파이썬에서는 방향 반대)
    • 함수를 호출하면 스택의 아래쪽 방향으로 함수가 추가
    • 함수가 끝나면 위쪽 방향으로 사라짐
    • 프레임은 스택 안에 있어서 각 프레임을 스택 프레임이라 함






2. 위치 인수와 키워드






위치 인수(positional argument)

함수에 인수를 순서대로 넣는 방식

# 위치 인수(리스트 언패킹)

>>> print(10, 20, 30)
10 20 30


# 위치 인수 사용 함수 생성

>>> def print_numbers(a, b, c):
...     print(a)
...     print(b)
...     print(c)


# 언패킹 사용

>>> x = [1,2,3]
>>> print_numbers(*x)123

>>> print_numbers(*[1,2,3])123






가변 인수(variable argument)

인수의 개수가 정해지지 않음

# 기본 형태
def 함수이름(*매개변수):
    코드
  • 가변 인수를 고정 인수와 함께 사용할 때는 반드시 가변 인수가 가장 뒤쪽에 위치해야 함






키워드 인수 (keyword argument)

인수에 이름(키워드)을 붙이는 기능.
함수(키워드=값) 형식으로 사용.






딕셔너리 언패킹

딕셔너리 앞에 **(애스터리스크 두 개)를 붙여서 함수에 넣어줌






키워드 인수를 사용하는 가변 인수

def 함수이름(**매개변수):
    코드
  • 고정 매개변수, 위치 인수, 키워드 인수 순으로 위치 지정






매개변수 초깃값 지정

매개변수=값 형식으로 지정.
주로 사용하는 값이 있으면서 가끔 다른 값을 사용해야 할 때 활용.

def 함수이름(매개변수=):
    코드
  • 초깃값이 지정된 매개변수 다음에는 초깃값이 없는 매개변수가 올 수 없다.






reference

남재윤, 『파이썬 코딩 도장』, 길벗

0개의 댓글