개요
프로그램의 재 사용성을 높이고 코드의 구조를 깔끔하게 만드는 파이썬 함수의 기본 개념과 실무 활용법을 알아본다.
1. 함수의 정의와 기본 구조
함수는 반복되는 로직을 하나로 묶어 필요할 때마다 호출하여 사용할 수 있는 코드 묶음이다. 파이썬에서는 def 키워드를 사용하여 함수를 정의한다.
함수 선언 및 호출
# 함수 정의
def greet(name):
return f"안녕하세요, {name}님!"
# 함수 호출
message = greet("Alice")
print(message) # 출력: 안녕하세요, Alice님!2. 매개변수와 인수 (Arguments)
함수로 데이터를 전달하는 매개변수와, 함수 실행 후 결과를 돌려주는 반환값에 대해 살펴본다.
기본값이 설정된 매개변수
매개변수에 기본값을 설정하면, 호출 시 인수를 생략하더라도 오류 없이 미리 정해진 값이 입력된다.
def power(number, exponent=2):
return number ** exponent
print(power(3)) # 출력: 9 (기본값 2 사용)
print(power(3, 3)) # 출력: 273. 가변 인자와 데이터 분리 할당 활용
매개변수의 개수가 정해지지 않았을 때는 별표(*)를 활용한 가변 인자를 사용한다. 이는 앞서 배운 데이터 분리 할당(Unpacking) 메커니즘과 동일한 원리로 작동한다.
여러 개의 인수를 리스트 형태로 받기
def sum_all(*numbers):
# *numbers는 튜플 형태로 모든 인수를 수집한다.
return sum(numbers)
# 할당 메커니즘:
# 입력된 모든 숫자 데이터가 하나의 변수명으로 묶여 처리됨
result = sum_all(10, 20, 30, 40)
print(result) # 출력: 1004. 람다(Lambda) 함수
이름 없이 한 줄로 정의할 수 있는 익명 함수다. 복잡한 로직보다는 간단한 연산을 수행할 때 지능형 리스트 등과 결합하여 자주 사용된다.
람다 함수 사용 예시
# 일반 함수
def add(a, b):
return a + b
# 람다 함수 (익명 함수)
add_lambda = lambda a, b: a + b
print(add_lambda(5, 3)) # 출력: 85. 주의사항 (Precautions)
파이썬은 다른 언어와 달리 들여쓰기와 실행 순서가 문법의 핵심이므로 다음 사항을 반드시 숙지해야 한다.
들여쓰기 실수로 인한 로직 오류
파이썬은 별도의 메인문 없이 들여쓰기로 함수의 범위를 결정한다. 들여쓰기가 끝나는 지점부터는 함수 밖의 코드로 간주되어 순차적으로 실행된다.
# 잘못된 예시: 90점인데 "불합격"이 같이 출력됨
def check_score(score):
if score > 80:
print("축하합니다!")
print("불합격입니다.") # 실수로 들여쓰기를 빼서 if문 밖으로 나감
return "Done"
# 올바른 예시: 조건에 맞는 문구만 출력됨
def check_score(score):
if score > 80:
print("축하합니다!")
else:
print("불합격입니다.")
return "Done"
함수 선언 및 호출 순서 오류
파이썬은 위에서 아래로 읽는 인터프리터 방식이므로, 함수가 호출되기 전에 반드시 상단에 먼저 정의되어 있어야 한다. 정의되지 않은 함수를 먼저 호출하면 NameError가 발생한다.
# 잘못된 예시: 함수 선언 전 사용
# say_hello() # NameError 발생
def say_hello():
print("Hello!")
# 올바른 예시: 함수 선언 후 사용
say_hello()
💡 활용 팁
- 변수의 범위 확인: 함수 내부에서 선언된 변수는 함수 밖에서 접근할 수 없다. 결과값이 함수 밖에서 필요하다면 반드시 return 명령어를 사용한다.
- 명확한 이름 선택: 함수 이름은 해당 함수가 어떤 기능을 수행하는지 직관적으로 알 수 있도록 동사 위주로 작성하며, 의미 없는 약어 사용을 지양한다.
- 메인 로직의 분리: 프로그램의 규모가 커지면 필요한 모든 함수를 문서 상단에 모아서 정의하고, 실제 실행 로직은 하단에 배치하는 것이 관례다.
- 효율적 연산: 간단한 연산은 람다 함수를 활용하여 코드의 길이를 줄이고 가독성을 높일 수 있다.
'Dev > Python' 카테고리의 다른 글
| 파이썬 기초: 예외 처리(try-except) 구조 및 주요 내장 예외 활용 (0) | 2026.01.05 |
|---|---|
| 파이썬 기초: 클래스(Class)와 객체(Object)의 이해 (0) | 2026.01.03 |
| 파이썬 기초: 자료형 심화 (리스트와 데이터 관리) (0) | 2026.01.01 |
| 파이썬 기초: 반복문(for, while) (0) | 2025.12.31 |
| 파이썬 기초: 조건문 (0) | 2025.12.30 |