고양이 여름이의 지식채널

[Python] 파이썬 함수 문법 (가변 매개변수, 람다 함수) 본문

Programming/Python

[Python] 파이썬 함수 문법 (가변 매개변수, 람다 함수)

썸머캣 2023. 3. 6. 23:42

함수는 프로그램에서 어떤 작업을 수행하는 코드의 묶음입니다. 함수를 사용하면 반복적으로 사용되는 코드를 간략하게 작성할 수 있어서, 코드의 재사용성유지보수성을 높일 수 있습니다.


기본 문법

파이썬에서 함수를 정의할 때는 def 키워드를 사용합니다. 함수 이름은 변수와 마찬가지로 소문자와 언더바를 혼용해서 작성하며, 매개변수를 정의할 수 있습니다. 매개변수는 함수를 호출할 때 전달되는 값을 받아들입니다.

def add(x, y):
    result = x + y
    return result
    
    
    
result = add(3, 5)
print(result)

## 결과는 8

 

가변 매개변수 함수 (가변 인자)

가변 매개변수는 함수를 정의할 때, 매개변수의 개수를 고정하지 않고, 필요에 따라 유동적으로 매개변수를 추가할 수 있게 만들어주는 기능입니다. 이 기능을 사용하면 함수 호출 시 매개변수의 개수를 다양하게 지정할 수 있어서, 함수의 재사용성을 높이고 코드의 유연성을 증가시키는 데에 큰 도움을 줄 수 있습니다.

 

변수명 앞에 * 키워드를 사용합니다.

def add(*args):
    result = 0
    for num in args:
        result += num
    return result

###################

def calculate_total_price(*items):
    total_price = 0
    for item in items:
        item_name, item_count, item_price = item
        total_price += item_count * item_price
    return total_price

첫번째 예시는 add 함수에 *args라는 가변 매개변수를 추가한 걸 볼 수 있습니다. 그리고, args 안에 전달된 값을 모두 더해서 result에 저장한 다음, 이를 반환하는 코드입니다.

이제 add 함수를 호출할 때, 매개변수의 개수가 다양하게 지정할 수 있게 되었습니다.

예를 들어, add(1, 2, 3) 처럼 매개변수를 3개 전달할 수도 있고, add(1, 2, 3, 4, 5) 처럼 매개변수를 5개 전달할 수도 있습니다. 그리고, 가변 매개변수는 단순히 숫자뿐만 아니라, 문자열, 리스트, 튜플 등 다양한 타입의 값을 전달할 수 있어, 이를 활용하면, 더욱 다양하고 유용한 함수를 만들어낼 수 있습니다.

 

두번째 예시에서 calculate_total_price 함수를 호출할 때, 상품 정보를 다양하게 전달할 수 있도록, 

예를 들어, calculate_total_price(("사과", 3, 1000), ("바나나", 2, 500), ("딸기", 1, 2000)) 처럼

상품 정보를 튜플로 묶어서 전달할 수 있습니다.

 

 

반응형

 

 

람다 함수 (lambda)

람다 함수란, 이름 없는 함수를 말하며. 함수를 선언하고 이름을 붙이는 것이 아니라, 한 줄로 간단하게 함수를 작성하고, 이를 변수에 저장하거나 바로 사용할 수 있는 기능입니다.

add = lambda x, y: x + y

람다 함수는 lambda 키워드를 사용해서 작성할 수 있습니다.

x와 y라는 두 개의 매개변수를 받아들여서, 그 둘을 더해서 결과를 반환하는 함수입니다.

 

이제 함수를 보다 유연하고 다양하게 만들 수 있으며, 여러분도 이번에 배운 내용을 적극적으로 활용해서 유용한 함수를 만들어보길 바랍니다.

 


 

[Python] 파이썬 데이터 타입(리스트, 튜플, 딕셔너리)

 

[Python] 파이썬 데이터 타입(리스트, 튜플, 딕셔너리)

파이썬에서는 다양한 데이터 타입을 제공합니다. 대표적인 데이터 타입으로는 리스트, 튜플, 딕셔너리가 있습니다. 리스트 (list) 리스트는 대괄호 [ ] 로 둘러싸인 값들의 목록입니다. 각 값들은

summer-cat93.tistory.com

 

 

728x90
반응형
Comments