안녕하세요! 파이썬 학습 일곱 번째 시간입니다. 지금까지 우리는 파이썬의 기본적인 문법과 자료 구조를 모두 마스터했습니다.
이제 이 지식들을 효율적으로 엮어 크고 복잡한 프로그램을 만들기 위한 가장 중요한 개념인 **함수(Function)**에 대해 알아보겠습니다. 함수는 코드를 재사용 가능한 블록으로 만들어 코드의 가독성과 유지보수성을 극대화합니다.
1. 함수란 무엇인가?
함수는 특정 작업을 수행하도록 미리 정의된 코드 블록입니다. 마치 자판기처럼, **입력(Input)**을 받아서 정해진 작업을 처리하고 **출력(Output)**을 돌려주는 역할을 합니다.
💡 함수를 사용하는 이유
- 재사용성 (Reusability): 같은 코드를 여러 번 복사/붙여넣기 할 필요 없이, 함수 이름만 호출하면 됩니다.
- 모듈화 (Modularity): 프로그램을 기능별로 나누어 관리하기 때문에 코드를 이해하기 쉽고, 수정이 용이합니다.
- 오류 방지: 한 곳에서만 수정하면 되기 때문에 오류 발생 가능성이 줄어듭니다.
2. 함수 정의 및 기본 구조
파이썬에서 함수는 def 키워드를 사용하여 정의합니다.
# 1. def 키워드와 함수 이름
def welcome_message(name):
# 2. 매개변수 (parameter): 함수가 외부에서 받는 입력값
# 3. 함수 본문 (들여쓰기 필요)
print(f"안녕하세요, {name}님. 환영합니다!")
# 4. 함수 호출 (call): 함수를 사용하기 위해 정의된 이름과 인자(argument)를 전달
welcome_message("Alice")
welcome_message("Bob")
# 결과:
# 안녕하세요, Alice님. 환영합니다!
# 안녕하세요, Bob님. 환영합니다!
규칙: 함수 정의 시에도 if/for와 마찬가지로 def 뒤에 **콜론(:)**을 붙이고, 함수 본문은 반드시 들여쓰기 해야 합니다.
3. 입력과 출력: 매개변수와 반환 값
3-1. 매개변수 (Parameters)
함수가 외부로부터 받는 입력값을 매개변수라고 합니다. 함수 호출 시 전달하는 실제 값은 **인자(Argument)**라고 부릅니다.
3-2. 반환 값 (return)
함수가 작업을 완료한 후 그 결과를 호출자에게 되돌려줄 때 return 키워드를 사용합니다. return이 실행되는 즉시 함수는 종료됩니다.
def add_and_multiply(num1, num2):
sum_result = num1 + num2
product_result = num1 * num2
# 두 개의 값을 튜플 형태로 반환합니다. (Step 5 참조)
return sum_result, product_result
# 함수 호출 및 반환 값 받기
total, multiplied = add_and_multiply(10, 5)
print(f"합계: {total}, 곱셈: {multiplied}") # 결과: 합계: 15, 곱셈: 50
만약 return이 없다면? 함수는 자동으로 None이라는 값을 반환합니다.
4. lambda 함수: 한 줄짜리 익명 함수
파이썬에는 매우 간결하게 함수를 정의하는 방법이 있습니다. lambda 함수는 이름이 없는(익명) 함수이며, 주로 간단한 기능을 한 줄로 표현할 때 사용됩니다.
💡 lambda 함수의 구조
lambda 매개변수1, 매개변수2, ... : 반환될 표현식
# 일반 함수
def square(x):
return x * x
# lambda 함수로 변환
square_lambda = lambda x: x * x
print(square_lambda(4)) # 결과: 16
lambda 함수는 리스트를 정렬하거나(sort) 특정 함수를 다른 함수의 인자로 전달할 때 매우 유용하게 사용됩니다.
5. 변수의 범위: 지역 변수와 전역 변수
파이썬에서 변수는 선언된 위치에 따라 유효한 범위가 결정됩니다.
- 지역 변수 (Local Variable): 함수 내부에서 선언된 변수입니다. 함수가 종료되면 사라지며, 함수 외부에서는 접근할 수 없습니다.
- 전역 변수 (Global Variable): 함수 **외부(최상단)**에서 선언된 변수입니다. 프로그램 전체에서 접근 가능합니다.
global_var = 100 # 전역 변수
def my_function():
local_var = 50 # 지역 변수
print(global_var) # 함수 내부에서 전역 변수 접근 가능
my_function()
# print(local_var) # 오류 발생! local_var는 함수 밖에서 접근 불가능
'개발 > Python' 카테고리의 다른 글
| [초급반] Step 9. 모듈과 패키지: 외부 라이브러리 사용하기 (0) | 2025.12.16 |
|---|---|
| [초급반] Step 8. 파일 입출력 (File I/O): 텍스트 파일 읽고 쓰기 (0) | 2025.12.16 |
| [초급반] Step 6. 딕셔너리(Dictionary)와 셋(Set): 키-값 구조와 중복 없는 데이터 (0) | 2025.12.16 |
| [초급반] Step 5. 리스트(List)와 튜플(Tuple): 순서가 있는 데이터 다루기 (0) | 2025.12.16 |
| [초급반] Step 4. 반복문 정복: for와 while로 코드 자동화하기 (0) | 2025.12.16 |