◆ 함수란 무엇인가?
함수는 특정 기능을 수행하는 코드 묶음이다.
조금 더 쉽게 말하면 "필요할 때마다 꺼내 쓰는 도구"이다.
◆ 함수를 사용하는 이유
함수는 단순한 기능이 아니라 코드를 구조적으로 설계하는 핵심 도구다.
왜 함수가 필요할까?
- 반복되는 코드 제거
- 코드 재사용 가능
- 가독성 향상
- 유지보수 쉬움
쉽게 말하면 "자주 쓰는 코드를 묶어서 필요할 때 꺼내 쓰는 것"
특히 규모가 커질수록 함수를 잘 쓰는 사람이 = 코드를 잘 짜는 사람이다
현실 비유
공장에서 하나의 제품이 여러 공정을 거쳐 완성되는 것처럼
프로그램도 여러 함수가 연결되어 결과를 만들어낸다.
◆ 함수의 기본 구조
def 함수이름(매개변수):
실행할 코드
return 결과
예제
def add(a, b):
return a + b
result = add(3, 4)
print(result)
결과 : 7
중요한 포인트
def = 함수 정의
a, b = 입력값 받는 변수
return = 결과 반환
◆ 매개변수 vs 인수
- 매개변수(parameter) → 함수 정의할 때
- 인수(argument) → 함수 호출할 때
def add(a, b): # a, b → 매개변수
return a + b
add(3, 4) # 3, 4 → 인수
◆ 함수의 4가지 형태
함수는 입력과 출력의 유무에 따라 나뉜다.
1. 입력O / 출력O (가장 일반적)
def add(a, b):
return a + b
2. 입력X / 출력O
def say():
return "Hi"
3. 입력O / 출력X
def add(a, b):
print(a + b)
print는 출력일 뿐, 반환값은 없다.
4. 입력X / 출력X
def say():
print("Hi")
이 구조를 이해하면 함수가 훨씬 명확해진다.
◆ return의 진짜 의미
많은 사람들이 return을 "값 반환" 정도로만 생각한다.
하지만 더 중요한 기능이 있다.
→ 함수를 즉시 종료한다.
예제
def test():
return 1
return 2
print(test())
결과 : 1
첫 번째 return에서 끝난다
◆ 함수의 결과는 항상 하나다
def add_and_mul(a, b):
return a + b, a * b
결과는 2개처럼 보이지만 실제로는 튜플 하나이다.
result = add_and_mul(3, 4)
print(result) # (7, 12)
여러 변수로 받기
x, y = add_and_mul(3, 4)
◆ 가변 인자(*args)
입력값 개수를 모를 때 사용한다.
def add_many(*args):
result = 0
for i in args:
result += i
return result
args는 튜플 형태로 묶인다.
add_many(1, 2, 3) → (1, 2, 3)
◆ 기본값 매개변수(Default Parameter)
def introduce(name, age, gender=True):
print(name, age, gender)
사용
introduce("철수", 20)
introduce("영희", 20, False)
중요한 규칙
기본값은 반드시 뒤에 와야 한다.
# 오류
def test(a=1, b):
◆ 변수의 범위(Scope)
함수 안과 밖은 완전히 다른 공간이다.
a = 1
def test(a):
a = a + 1
test(a)
print(a)
결과 : 1
함수 안의 a는 별개이다.
◆ 외부 변수 변경 방법
방법 1
def test(a):
return a + 1
a = test(a)
방법 2
def test():
global a
a += 1
global은 가능하지만 유지보수에 불리하다.
◆ lambda (한 줄 함수)
add = lambda a, b: a + b
간단한 함수에 사용한다.
◆ 함수 사용 예시
계산 함수
def total_price(price, count):
return price * count
데이터 처리
def process(data):
return [x * 2 for x in data]
함수는 단순 계산이 아니라 프로그램의 흐름을 구성하는 핵심 단위이다.
◆ 피해야 할 실수
- return 없이 값 기대하기
- global 남용
- 함수 너무 길게 만들기
- 하나의 함수에 여러 역할 넣기
◆ 정리
- 함수 = 코드 재사용 + 구조화
- return = 결과 반환 + 종료
- args = 여러 입력 처리
- scope = 변수 범위
함수는 프로그램을 설계하는 도구다.
'Python' 카테고리의 다른 글
| 파이썬 입력, 출력, 파일 처리 정리 (0) | 2026.04.30 |
|---|---|
| 파이썬 for문 정리(range, continue, 리스트 내포까지) (0) | 2026.04.28 |
| while문 정리(반복문 기초부터 break, continue, 무한 루프까지) (1) | 2026.04.27 |
| if문 정리 (0) | 2026.04.27 |
| 문자열 포매팅 정리(f-string, format, % 차이) (0) | 2026.04.23 |
