본문 바로가기

Langauge/Python

[Python] 5. 함수

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