파이썬 기초: 함수(Function) 완벽 정리
프로그래밍에서 함수(Function)는 특정 기능을 수행하는 코드 블록입니다. 함수를 사용하면 코드 재사용이 가능하고, 가독성이 좋아지며, 유지보수가 편리해집니다. 이번 글에서는 파이썬 함수의 기본 개념과 다양한 활용법을 배워보겠습니다.
1. 함수란?
함수는 특정 작업을 수행하는 코드 묶음입니다. 함수를 사용하면 같은 코드를 반복해서 작성할 필요 없이 호출만 하면 됩니다.
함수 사용 전
print("안녕하세요, 홍길동님!")
print("안녕하세요, 김영희님!")
print("안녕하세요, 이철수님!")
함수 사용 후
def greet(name):
print(f"안녕하세요, {name}님!")
greet("홍길동")
greet("김영희")
greet("이철수")
✅ 함수 사용의 장점:
- 코드의 재사용성 증가
- 가독성 향상
- 유지보수 용이
2. 함수 정의와 호출
2.1 함수 정의
파이썬에서 함수를 정의할 때는 def 키워드를 사용합니다.
def 함수이름(매개변수1, 매개변수2, ...):
실행할 코드
return 반환값 # (생략 가능)
2.2 함수 호출
정의한 함수를 사용하려면 함수 이름을 호출하면 됩니다.
def greet(name):
print(f"안녕하세요, {name}님!")
greet("홍길동") # 안녕하세요, 홍길동님!
3. 매개변수와 반환값
3.1 매개변수 (Parameters)
함수에 값을 전달할 수 있습니다.
def add(a, b):
print(a + b)
add(3, 5) # 8
3.2 반환값 (Return)
return을 사용하면 함수가 값을 반환할 수 있습니다.
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
✅ return을 사용하면 함수의 결과를 변수에 저장할 수 있습니다.
4. 기본값 매개변수 (Default Parameter)
함수를 호출할 때 값을 전달하지 않으면 기본값을 사용하도록 설정할 수 있습니다.
def greet(name="손님"):
print(f"안녕하세요, {name}님!")
greet() # 안녕하세요, 손님님!
greet("홍길동") # 안녕하세요, 홍길동님!
5. 가변 매개변수 (*args, **kwargs)
5.1 *args: 여러 개의 값을 받을 때
*args를 사용하면 여러 개의 인자를 튜플 형태로 받을 수 있습니다.
def add_all(*numbers):
return sum(numbers)
print(add_all(1, 2, 3)) # 6
print(add_all(4, 5, 6, 7, 8)) # 30
5.2 **kwargs: 키워드 인자를 받을 때
**kwargs를 사용하면 딕셔너리 형태로 여러 개의 키-값을 받을 수 있습니다.
def introduce(**info):
for key, value in info.items():
print(f"{key}: {value}")
introduce(name="홍길동", age=30, city="서울")
출력 결과:
name: 홍길동
age: 30
city: 서울
6. 함수의 다양한 활용
6.1 여러 값을 반환하기
튜플을 이용하면 여러 개의 값을 한 번에 반환할 수 있습니다.
def get_person():
name = "홍길동"
age = 30
return name, age
n, a = get_person()
print(n, a) # 홍길동 30
6.2 재귀 함수 (Recursive Function)
자기 자신을 호출하는 함수를 재귀 함수라고 합니다.
예제: 팩토리얼 계산
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5)) # 120
6.3 람다 함수 (Lambda Function)
한 줄로 간단한 함수를 만들 때 **lambda**를 사용합니다.
add = lambda a, b: a + b
print(add(3, 5)) # 8
예제: 리스트 정렬
students = [("철수", 90), ("영희", 85), ("길동", 95)]
students.sort(key=lambda x: x[1]) # 두 번째 요소(점수) 기준 정렬
print(students)
출력 결과:
[('영희', 85), ('철수', 90), ('길동', 95)]
7. 함수와 스코프 (변수의 범위)
변수에는 **지역 변수(Local Variable)와 전역 변수(Global Variable)**가 있습니다.
7.1 지역 변수 (Local Variable)
함수 내부에서 정의된 변수는 해당 함수 내에서만 사용 가능합니다.
def my_function():
local_var = "나는 지역 변수"
print(local_var)
my_function()
print(local_var) # 오류 발생! (local_var는 함수 밖에서 사용 불가)
7.2 전역 변수 (Global Variable)
함수 밖에서 정의된 변수는 모든 곳에서 접근 가능합니다.
global_var = "나는 전역 변수"
def my_function():
print(global_var) # 전역 변수 사용 가능
my_function()
print(global_var)
하지만, 함수 내부에서 전역 변수를 수정하려면 global 키워드를 사용해야 합니다.
count = 0
def increment():
global count
count += 1
increment()
print(count) # 1
8. 결론
이번 글에서는 파이썬 함수의 기본 개념과 활용 방법을 배웠습니다.
✅ 함수는 코드 재사용을 위해 사용됨
✅ return을 사용하면 값 반환 가능
✅ *args, **kwargs를 활용하여 가변 매개변수 처리
✅ 재귀 함수, 람다 함수 등 다양한 함수 활용 가능
✅ 지역 변수와 전역 변수의 차이점 이해
다음 글에서는 파이썬의 파일 입출력과 예외 처리에 대해 알아보겠습니다! 🚀
'BIG DATA > PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 객체 지향 프로그래밍(OOP) 완벽 정리 (0) | 2025.02.22 |
---|---|
[PYTHON] 파이썬 기초: 파일 입출력과 예외 처리 완벽 정리 (0) | 2025.02.21 |
[PYTHON] 파이썬 기초: 리스트, 튜플, 딕셔너리 완벽 정리 (1) | 2025.02.21 |
[PYTHON] 파이썬 기초: 반복문 (for, while) 완벽 정리 (0) | 2025.02.21 |
[PYTHON] 파이썬 기초: 조건문(if, elif, else) 완벽 이해 (0) | 2025.02.20 |