본문 바로가기

Python

[Python] 함수 (function) / 람다(lambda)

함수 선언 및 정의 :

def func1(parameter1, parameter2):

    //To-Do

    return value

 

return 값이 없을 때, None return (Python에선 None 이 null 과 같음)

def func1(a, b):
    a+b

print(func1(5,7))

-->None

 

- *args

매개변수를 n개 받을 때 사용

입력한 값들이 튜플로 변환되어 함수에서 사용됨

 

def func1(param, *args):
    for i in args:
        print(param)
        print(i)
        
func1('hi',1,2,3) # 'hi' 는 param, (1,2,3) 은 *args 로 튜플로 인식

---->
hi
1
hi
2
hi
3

 

- 키워드 파라미터 (**kwargs)

n개의 key - value 값을 받을 때 사용

입력한 값들이 dictionary로 변환되어 함수에서 사용됨

 

def func1(param, **kwargs):
    print(param)
    print(kwargs)
        
func1('hi', name='name', age = 12, list = [1,2])

----->
hi
{'name': 'name', 'age': 12, 'list': [1, 2]}

 

- 함수 파라미터 값 default 설정

def func1(name, age, gender = '남자'):
    print('저의 이름은 {name} 이며 나이는 {age}, {gender} 입니다.'.format(name = name, age = age, gender = gender))

#age 만 default 설정 불가
#해당 함수 사용 시, 2번째 parameter 가 age 값인지, gender 값인지 알 수 X
def func2(name, age = 21, gender = '남자'):
    print('저의 이름은 {name} 이며 나이는 {age}, {gender} 입니다.'.format(name = name, age = age, gender = gender))

func1('손흥민', 31)        
func1('손흥민', 31, '남자')
func1('손흥민', 31, '여자')

--->
저의 이름은 손흥민 이며 나이는 31, 남자 입니다.
저의 이름은 손흥민 이며 나이는 31, 남자 입니다.
저의 이름은 손흥민 이며 나이는 31, 여자 입니다.

 

- lambda

한 줄짜리 간결한 함수로 보통 return 값을 바로 변수에 넣어 활용하고자 할때 사용

 

add = lambda a, b: a + b
result = add(5,4)
print(result)

 

반응형