참고 자료
https://docs.python.org/ko/3/tutorial/controlflow.html
https://docs.python.org/ko/3/reference/expressions.html
파이썬 버전 3.7 기준
파이썬에서의 함수 생성 및 출력
키워드 인자(*args 및 **kwarg 포함), 람다(lambda)표현식 등.
앞선 포스팅에서 키워드인자에 대한 설명을 간략히 적어놓았으나 본 포스팅에서 자세히 설명하고자 한다.
키워드 인자 및 입력 순서
○ 함수에 입력변수를 넣는 방법으로는 크게 4가지가 존재한다.
▷ 변수명만 입력하는 경우(위치 인자라고도 표현한다.)
▷ *args 형태로 입력하는 경우
▷ 키워드 인자로 입력하는 경우
▷ **kwarg 형태로 입력하는 경우
○ 위에 설명된 매개변수의 입력 순서는 위에서 나열한 순서와 같다.
함수 정의시 매개변수 입력의 예)
# 변수명만 입력하는 경우
def 함수이름(입력변수명):
# 키워드 인자를 이용하는 경우
def 함수이름(키워드인자1=기본값1, 키워드인자2=기본값2, 키워드인자3=기본값3, ...):
# *변수와 **변수를 이용하는 경우
def 함수이름(*args, **kwarg):
# 각 변수의 입력 순서
def 함수이름(입력변수명1, 입력변수명2, ... , *args, 키워드인자1=기본값1, 키워드인자2=기본값2, ..., **kwarg):
○ 위치인자는 함수 사용할때 위치 혹은 순서를 정확히 입력받아야 한다.
○ *args 형태는 변수의 수가 정해지지 않은 경우 사용될 수 있다.
▷ 함수에서 입력 변수를 콤마로 나누어 계속해서 입력하는 형태로 사용된다.
▷ 내장함수에서 min() 및 max() 사용법을 생각하면 이해하기 쉽다.
○ 키워드인자를 이용하여 함수(def)를 작성하기 위해 입력 매개변수를 "입력변수=기본값" 형태로 정의한다.
▷ 키워드입력의 순서는 상관 없으나, 입력변수 이름을 정확히 입력해야 한다.
▷ 입력변수를 입력하지 않을 경우에는 위치인자와 동일하며, 순서를 정확히 입력해야한다.
○ **kwarg 형태는 위의 *변수 형태와 마찬가지로 변수의 수가 정해지지 않은 경우 사용될 수 있으나, 딕셔너리형태로 입력된다는 것이 다르다.
람다 표현식 lambda
○ lambda 키워들 이용하면 매우 간단한 함수를 작성하는 것이 가능하다.
○ 문법적으로 하나의 표현식으로 제한된다.
○ sorted 함수 혹은 sort 메서드에서 정렬을 수행될 때에도 사용하기도 한다. (이곳을 참고)
람다 표현식의 구성)
# 람다표현식의 구성
lambda [parameter list] : expression
# 람다표현식과 동등한 함수
def function(parameter list):
return expression
sorted 함수를 이용한 정렬시 사용 예)
In[33]sorted([4,53,6,75,32])
Out[33]: [4, 6, 32, 53, 75]
In[34]: a=[('snow', 3), ('winter', 1), ('large', 2) ]
In[35]: sorted(a, key= lambda go: go[1])
Out[35]: [('winter', 1), ('large', 2), ('snow', 3)]
'Python > 파이썬 기초' 카테고리의 다른 글
모듈(module)과 패키지(package), import - 파이썬 기초(22) (0) | 2018.12.29 |
---|---|
리스트 컴프리헨션 - 파이썬 기초(21) (0) | 2018.12.28 |
함수 생성 및 결과출력(def, return) - 파이썬 기초(19) (0) | 2018.12.26 |
기타 흐름 제어(break, continue, else, pass) 구문 - 파이썬 기초(18) (0) | 2018.12.25 |
흐름 제어(if) 및 반복(for, while) 구문 - 파이썬 기초(17) (0) | 2018.12.23 |
댓글