728x90
반응형
함수
파이썬의 함수 선언은 다음과 같이 할 수 있다.
"""
def 함수명(매개변수):
코드
"""
def f1(a):
return a
# Type Annotation
def f1(a:int) -> int:
return a
# int 타입의 값을 반환
# 값을 단순히 반환하는 함수의 경우 한 줄로 쓸 수 있다.
def f1(a:int) -> int : return a
- 매개변수의 자료형은 제한이 없다.
- 매개변수의 개수는 제한이 없다.
- 값을 단순히 반환하는 함수의 경우 한 줄로 쓸 수 있다.
- 반환값을 여러개 반환할 수 있다.
def multi_return(a:int,b:str,c:float) : return a,b,c
a,b,c = multi_return(1,"hello",1.2)
print(a,b,c)
디폴트 매개변수라는 기능을 사용해 매개변수를 전달하지 않았을 때 사용할 값을 지정할 수 있다.
def f2(a:int = 3) -> int:
return a
"""
주의! 디폴트 매개변수는 반드시 오른쪽부터 채워져 있어야한다.
ex
OK : def f2(a:int, b:int = 3)
NO : def f2(a:int = 2, b:int)
"""
print(f2())
print(f2(4))
- 디폴트 매개변수는 일반 매개변수 다음에 정의해야 한다.(오른쪽 부터 채우기)
매개변수 이름에 *를 사용해서 데이터를 여러개 전달할 수 있다.
def f2(*args: int) -> tuple: return args
print(f2(1,2,3,4))
- 매개변수들은 tuple로 전달된다.
매개변수 이름에 **를 사용해 키워드(변수명)를 설정할 수 있다.
def f3(**kargs: int) -> dict: return kargs
print(f3(a=1,b=2,c=3,d=4))
- 매개변수를 키워드와 함께 전달하면 키, 값 쌍의 사전으로 전달된다.
람다함수(Lambda)
람다함수 이름이 없는 함수를 만드는 방법이다.
- 코드가 간결하다.
- 메모리가 절약된다.
- 한번만 사용할 함수를 만들 때 사용한다.
- 매개변수는 여러개를 정의할 수 있다.
- 디폴트 매개변수 ,* , **을 사용할 수 있다.
# lambda 매개변수 : 리턴값
lambda a : a+1
# 매개변수+1을 반환하는 함수
(lambda a : a+1)(3)
# 매개변수+1을 반환하는 함수에 매개변수 3을 전달한 값
func = lambda a : a+1
func(3)
# 람다함수를 사용자 정의 함수 처럼 사용할 수 있다.
예시
func = lambda *x : x
print(func(1,2,3,4))
728x90
반응형
'Langauge > Python' 카테고리의 다른 글
[Python] 7. 예외처리 (0) | 2023.02.11 |
---|---|
[Python] 6. 클래스와 모듈 (0) | 2023.02.11 |
[Python] 4. 내장 자료형 (0) | 2023.02.10 |
[Python] 3. 제어문 (0) | 2023.02.10 |
[Python] 2. 변수, 연산자, 기본 입출력 (0) | 2023.02.10 |