1. 함수란?
여러 줄의 코드를 하나로 묶어 이름을 붙임
재사용성, 가독성, 유지보수에 필수인 핵심 문법
2. 함수 정의 및 호출
def greet(name):
return f"안녕, {name}!"
print(greet("철수")) # 안녕, 철수!
- def(define) 키워드로 함수를 정의, ()로 호출
- return 은 결과값을 돌려줌
3. 매개 변수(Parameter) 와 인수(Argument)
def add(a, b): # a, b 는 매개변수
return a + b # 돌려주는 값은 8
print(add(3m 5) # 3, 5 는 인수
- 매개변수 : 함수 정의 시 이름 붙인 변수
- 인수 함수 호출시 넘겨주는 실제 값
4. 반환값 (Return)
def square(x):
return x * x
print(square(4)) # 16
- 함수의 결과를 반환하고 싶을때 return 사용
- 반환하지 않으면 기본값은 None
5. 기본값 인자 (Variable-length arguments)
| 한글 명칭 | 영어 표현 | 설명 |
| 가변 인자 | Variable-length arguments | 인자의 개수가 유동적인 함수 |
| 위치 가변 인자 | Positional variable-length arguments (*args) | 순서대로 여러 인자 |
| 키워드 가변 인자 | Keyword variable-length arguments (**kwargs) | 이름 붙여 여러 인자 |
# -------- 위치 가변 인자 (*args) --------
# 위치 인자를 몇 개든 받을 수 있고, 튜플 형태로 저장됨
def print_numbers(*args):
print("받은 값들:", args) # args는 튜플
for i in args:
print(i)
print_numbers(10, 20, 30)
# 출력:
# 받은 값들: (10, 20, 30)
# 10
# 20
# 30
# -------- 키워드 가변 인자 (**kwargs) --------
# 키워드 인자를 몇 개든 받을 수 있고, 딕셔너리 형태로 저장됨
def print_info(**kwargs):
print("받은 키워드들:", kwargs) # kwargs는 딕셔너리
for key, value in kwargs.items():
print(f"{key} : {value}")
print_info(name="Alice", age=25, job="developer")
# 출력:
# 받은 키워드들: {'name': 'Alice', 'age': 25, 'job': 'developer'}
# name : Alice
# age : 25
# job : developer
# -------- *args와 **kwargs 함께 사용 --------
# 위치 인자와 키워드 인자를 동시에 받을 수 있음
def show_all(*args, **kwargs):
print("args:", args) # 위치 인자 → 튜플
print("kwargs:", kwargs) # 키워드 인자 → 딕셔너리
show_all(1, 2, 3, name="Bob", age=30)
# 출력:
# args: (1, 2, 3)
# kwargs: {'name': 'Bob', 'age': 30}
| 형태 | 파라미터 형태 | 내부 자료형 | 설명 |
| args | 위치 인자 | tuple | 인자의 개수가 유동적일 때 사용 |
| kwargs | 키워드 인자 | dict | 키=값 형태의 인자를 유동적으로 받을 때 사용 |
- args
- 튜플 형태로 여러 값을 전달받음
- 인자의 개수가 유동적일 때 사용
- kwargs
- 딕셔너리 형태로 여러 값을 전달받음
- 키와 값을 지정하여 넘기는 방식
- 이렇게 기억해보자
- *args → Args = Any number of positional arguments
- **kwargs → Kwargs = Keyword word arguments
한 문장 정리:
"가변 인자는 함수가 받는 인자의 개수나 이름이 유동적일 때 사용하는 문법이며,
그 안에는 **위치 가변 인자(*args)**와 **키워드 가변 인자(**kwargs)**가 있다."
🎁 보너스: 람다 함수 맛보기 (추후 설명 예정)
lambda는 한 줄로 정의 하는 간단한 함수
이름 없는 익명 함수로 사용
# 문법
# 변수(익명 함수) = lambda 매개 변수1, 매개 변수2.... : 반환값
square = lambda x: x * x
print(square(4)) # 16
add = lambda a, b: a + b
print(add(2, 3)) # 5
핵심 포인트
- lambda x: x * x는 함수지만 이름이 없음 → 익명 함수
- square = lambda x: x * x
👉 lambda 함수를 변수 square에 저장한 것 - 이제 square는 함수처럼 동작하는 변수가 됨
다른 기초를 알고 싶다면? 여기로
'딥러닝 > 프로그래밍 기초' 카테고리의 다른 글
| [프로그래밍 기초]Part 7 파이썬 기타 기초 문법 - 들여쓰기 (Indentation) (4) | 2025.07.12 |
|---|---|
| [프로그래밍 기초]Part 6 파이썬 기타 기초 문법 - 주석 (Comments) (4) | 2025.07.12 |
| [프로그래밍 기초]Part 4. 파이썬 기초 5대 영양소 반복문 (Loops) (6) | 2025.07.11 |
| [프로그래밍 기초]Part 3. 파이썬 기초 5대 영양소 조건문 (Conditionals) (2) | 2025.07.11 |
| [프로그래밍 기초]Part 2. 파이썬 기초 5대 영양소 변수 (Variables) (8) | 2025.07.11 |