Developer's Development

3.1.3 [Python] 함수 본문

프로그래밍과 데이터 기초/PYTHON

3.1.3 [Python] 함수

mylee 2025. 6. 27. 20:58
함수

 

특정 기능을 하기 위한 코드의 집합

함수를 정의해 놓으면 해당 기능이 필요한 위치에서 함수를 호출하여 간편하게 사용할 수 있다.

 

  • 함수 표현식

def 키워드를 사용하여 함수를 정의한다.

이 때, 함수 이름 뒤에 소괄호와 콜론을 작성하며 함수에서 실행할 내용은 "반드시" 들여쓰기 한다.

def 함수명():
	함수가 실행하는 코드 내용
# no param, no return value
def print_greeting():
    print('Hello Wrold')
print_greeting()  #Hello World

 

return 키워드를 만나면 함수 수행을 중단하고 호출 위치로 돌아간다.

return 뒤에 반환값을 쓰지 않으면 None을 반환한다.

return을 쓰지 않아도 묵시적으로 'return'이 존재한다. 즉, 안 써도 문제 없다.

 

 

매개변수
  • 파라미터

함수 생성 시 함수명 앞에 붙이는 소괄호 안에 매개변수로 전달받을 값의 변수명을 넣을 수 있다. 이를 파라미터라고 한다.

# no param, return value
def return_blabla():
    return 'Hello Wrold', 1, ['hi'], (1, 2, 3)
print(return_greeting())  #('Hello Wrold', 1, ['hi'], (1, 2, 3))
    
# param, no return value
def choose_lunch(name):
    print(f'{name}야 오늘 점심 뭐 먹어?')
choose_lunch('맹구')  #맹구야 오늘 점심 뭐 먹어?

# param, return value
def return_name_lunch(user_name, lunch_menu):
    return f'{user_name}야, 오늘 점심은 {lunch_menu} 어때?'
print(return_name_lunch('맹구', '스시'))  #맹구야, 오늘 점심은 스시 어때?

 

함수를 정의할 때 매개변수의 기본값을 지정해줄 수 있다.

함수 호출 시 인자를 보내지 않으면, 함수 선언부에서 미리 지정한 기본값을 사용하여 함수를 실행한다.

def print_cheerup(user_name='떡잎마을 방범대'):
    print(f'{user_name} 힘내라💪💪💪')
print_cheerup()  #떡잎마을 방범대 힘내라💪💪💪

 

  • 인자

함수 호출 시 함수명에 소괄호를 붙여 호출하며, 이 때 소괄호 안에 전달하는 값을 인자라고 한다.

  1. 위치 인자 : 위치로 매칭하는 방법
  2. 키워드 인자 : 매개변수 이름으로 매칭하는 방법
print(return_name_lunch('맹구', '스시'))  #위치 인자 ▶ 맹구야, 오늘 점심은 스시 어때?
print(return_name_lunch(lunch_menu="라멘", user_name="짱구"))  #키워드 인자 ▶ 짱구야, 오늘 점심은 라멘 어때?

 

 

반환값

 

함수 블럭 내부에서 return 키워드를 만나면 함수의 작동이 중단된다.,

return 키워드 뒤에 변수 또는 값이 오면, 해당 자료를 함수 호출 위치에 반환하며 중단된다.

 

 

패키지와 언패키지
  • 패키징 : 위치 인자가 많을 때 *을 붙여서 패키징하여 하나의 객체로 처리할 수 있다.
  • 언패키징 : 패키지와 반대되는 개념으로 여러 개의 객체를 포함하는 하나의 객체를 풀어준다.
def call_animals(*animals_args):
    for animal in animals_args:
        print(animal)
        
call_animals('🐭', '🐸', '🐨', '🐻', '🐰')  #🐭 🐸 🐨 🐻 🐰(각각 줄바꿈되어 print)
def multi_sum(num1, num2, num3, num4, num5):
    return num1 + num2 + num3 + num4 + num5

numbers = [2025, 6, 27, 12, 19]
multi_sum(*numbers)  #2089

 

 

람다 (Lamda)

 

일회성간단한 함수를 정의할 때 유용하게 사용할 수 있는, 함수를 보다 간단하고 쉽게 선언하는 방법

매개변수로 함수를 전달해야 할 때, 함수 구문을 작성하는 것이 번거롭고 코드가 지나치게 길어지는 경우 사용한다.

즉, 함수 기능을 매개변수로 전달하는 코드를 더 효율적으로 작성할 수 있도록 한다.

변수명 = lamda (매개변수) : (함수 실행 내용)
# 기본 예제
add = lambda x, y: x + y
print(add(3, 5))  #8

# 람다 함수를 고차함수의 인자로 전달 (배열 요소 처리)
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers))  # [1, 4, 9, 16, 25]