Developer's Development
3.1.3 [Python] 함수 본문
함수
특정 기능을 하기 위한 코드의 집합
함수를 정의해 놓으면 해당 기능이 필요한 위치에서 함수를 호출하여 간편하게 사용할 수 있다.
- 함수 표현식
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() #떡잎마을 방범대 힘내라💪💪💪
- 인자
함수 호출 시 함수명에 소괄호를 붙여 호출하며, 이 때 소괄호 안에 전달하는 값을 인자라고 한다.
- 위치 인자 : 위치로 매칭하는 방법
- 키워드 인자 : 매개변수 이름으로 매칭하는 방법
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]
'프로그래밍과 데이터 기초 > PYTHON' 카테고리의 다른 글
| 3.1.5 [Python] 모듈&패키지, 파일 IO (0) | 2025.07.01 |
|---|---|
| 3.1.4 [Python] 클래스 (1) | 2025.06.30 |
| 3.1.2 [Python] 제어문(조건문, 반복문, 분기문) (1) | 2025.06.27 |
| 3.1.1 [Python] 변수와 자료형 (2) | 2025.06.27 |
| 3.1.0 [Python] 개요 및 개발환경 구축 (0) | 2025.06.27 |