파이썬의 다양한 함수 활용: 가변 인수와 람다 표현식

안인균·2023년 6월 22일
0

파이썬 공부

목록 보기
1/4
post-thumbnail

플레이데이터 수업 내용 중 기억에 남기기 위해 해당 글을 작성하게 되었습니다.

혼자서 글 읽고 공부하기 보단 ChatGPT를 활용해서 궁금한 것을 탐구하고 자세한 내용들을 풀어 설명한 내용들을 옮겨 담은 글입니다. 마지막에 ShareGPT 링크를 통해 물어봤었던 내용들을 공유하겠습니다.

기초적인 내용보다는 학습 도중 궁금했던 점 위주로 적기 때문에 다른 사람들에게 도움되지 않을 수 있습니다.

모든 내용은 아래 Github링크, 파이썬 파일에 주석으로 설명되어있어 참고하시면 될 것 같습니다.

✅ 파이썬 함수

파이썬에서 원하는 함수 구현하는 기본 식

def 함수이름(매개변수):	# 콜론(:) 빼먹지 말기
	실행 코드 # 들여쓰기(tap)를 통해 함수에서 동작하길 원하는 코드를 담는다.
    ~

매개 변수(Parameters) : 함수 정의 시에 함수에 전달되는 값을 받는 변수
인수(Arguments) : 함수를 호출할 때 전달되는 값

고정 인수, 위치 가변 인수, 키워드 가변 인수 ? :

  • 고정 인수는 함수 정의 시에 매개 변수로 명시적으로 선언되는 인수
  • 위치 가변 인수는 함수 정의 시에 매개 변수를 튜플 형태로 받을 수 있도록 지정하는 인수
  • 키워드 가변 인수는 함수 정의 시에 매개 변수를 딕셔너리 형태로 받을 수 있도록 지정하는 인수
# 고정인수를 이용한 함수 예시
def add(x, y):
    return x + y

result = add(3, 5)
print(result)  # 출력: 8


# 위치 가변 인수를 이용한 함수 예시
def multiply(*numbers):
    result = 1
    for number in numbers:
        result *= number
    return result

result = multiply(2, 3, 4)
print(result)  # 출력: 24


# 키워드 가변 인수를 이용한 함수 예시
def person_info(**info):
    for key, value in info.items():
        print(key + ": " + value)

person_info(name="John", age="30", city="New York")

위의 코드에서 확인할 수 있는 것에서 각 함수의 매개변수 부분을 보면,
고정 인수에 해당하는 함수의 매개변수는 우리가 보통 쓰는 변수를 썼지만, 위치 가변 인수와 키워드 가변 인수를 이용한 함수의 매개변수 앞에 *(애스터리스크)가 붙어 있음을 알 수 있습니다.
이것은 위치 가변 인수는 튜플 형태, 키워드 가변 인수는 딕셔너리 형태로 매개변수를 받을 수 있게한 장치이며,

* -> 튜플 (위치 가변 인수) /  ** -> 딕셔너리 (키워드 가변 인수)

이렇게 개수로 구분할 수 있습니다.

More. *(애스터리스크)는 해당 값을 언패킹(Unpacking)한다는 의미로 만일, 딕셔너리 인수인데 매개변수에 * 하나만 붙어 있다면, 에러가 나는 것이 아닌 딕셔너리의 키 (key) 값만 언패킹 해서 함수 실행이 이어집니다.

More. 언패킹이란, 시퀀스나 이터러블 객체의 요소들을 개별 변수로 분리하는 과정을 말합니다. 즉, 여러 값을 가진 시퀀스나 컬렉션을 개별 변수로 분할하여 할당하는 것입니다.

람다 표현식 :

함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용합니다.
Why use? -> ShareGPT 내용참고.

람다 표현식 예시 :
# 두 수를 더하는 람다 함수
add = lambda x, y: x + y
result = add(3, 5)
print(result)  # 출력: 8


# 문자열의 길이를 반환하는 람다 함수
length = lambda s: len(s)
result = length("Hello, world!")
print(result)  # 출력: 13


# 숫자 리스트의 각 요소에 대해 제곱 계산
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]

이외에도 다양한 예제문과 설명들은 Github링크와 ShareGPT링크를 참고하시면 되겠습니다.

Github 링크
ShareGPT 링크

0개의 댓글

관련 채용 정보