Chapter 01. 데이터 분석가에게 꼭 필요한 기초 문법
함수
함수란 무엇인가?
함수는 재사용 가능한 코드 블록으로, 특정 작업을 수행하기 위해 설계된 코드 모음
- 함수정의 : 특정 작업을 미리 정의함
- 함수 활용(호출) : 정의된 작업을 (여러차례) 수행함
- 코드 재사용 : 반복적으로 사용되는 코드를 함수로 작성하여 중복 방지
- 가독성 : 코드를 함수 단위로 나누어 읽기 쉽고 유지보수 용이
- 모듈화 : 프로그램을 작은 단위로 나누어 관리
- 디버깅 용이성 : 특정 작업을 함수로 분리하면 문제를 더 쉽게 찾고 해결 가능
함수 기초 구조
함수는 def 키워드로 정의되며, 매개변수, 실행문, 반환값으로 구성 됨.
함수 구조
def 함수명(매개변수1, 매개변수2, ...):
실행문 # 반환값 생성 프로세스
return 반환값 # 선택 사항
함수 예시
def add(a, b):
output = a + b
return output
def square(n):
return n ** 2
def greeting():
print(“Hello”)
## 매개변수도 없고 출력도 없는 형태 출력은 None 자료형이 됨
함수의 동작 원리: 호출
함수를 실행하려면 함수 이름 뒤에 괄호를 붙이고 매개 변수를 입력.
( 함수 실행을 함수 호출이라고도 하며, 함수가 호출 전에 정의되어 있어야 함 )
def add(a, b):
output = a + b
return output
result = add(3, 5) # add 함수 호출 (순서대로 입력)
print(result) # 8
result = add(a = 3, b = 5) # add 함수 호출 (매개변수 지정해서 입력)
print(result) # 8
result = add(**{a:3, b:5}) # add 함수 호출 (사전으로 입력)
print(result) # 8
로컬 변수
함수 내에서 정의된 변수인 로컬 변수는 함수 내부에서만 유효하며, 함수 외부에서는 접근할 수 없습니다.
def calculate_area(length, width):
area = length * width # area는 로컬 변수
return area
print(calculate_area(5, 3)) # 출력: 15
print(area) # 오류: area는 함수 외부에서 접근할 수 없음
기본값
기본값은 함수에 인자가 전달되지 않았을 때 사용할 값을 미리 설정하는 기능
• 매개변수에 기본값을 지정하면, 함수 호출 시 해당 인자를 생략할 수 있습니다.
• 기본값이 있는 매개변수는 반드시 기본값이 없는 매개변수 뒤에 위치해야 합니다.
def discount(price, discount_rate = 0):
return price * (1 – discount_rate/100)
discount(1000, 10) # price = 1000, discount_rate = 10
discount(1000) # price = 1000, discount_rate = 0 (기본값)
가변 인자
함수가 동적인 수의 인자를 받게 하는 가변 인자는 매개 변수 개수를 알 수 없을 때 사용
• 위치 기반 가변인자 *args는 임의 개수의 위치 인자를 튜플로 처리/
• 키워드 기반 가변인자 **kwargs는 임의 개수의 키워드 인자를 딕셔너리로 처리.
def sum_all(*my_input):
return sum(my_input)
print(sum_all(1, 2, 3)) # 6
print(sum_all(4, 5, 6, 7)) # 22
def print_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
print_info(name=“Gil", age=20, job=“Data Scientist")
# name: Gil
# age: 20
# job: Data Scientist
람다 함수
람다 함수는 이름 없이 정의할 수 있는 간단한 수준의 익명 함수
• lambda 키워드를 사용해 정의
• 여러 줄의 코드를 작성할 수 없으며, 단일 표현식만 사용
• 반환값은 표현식의 결과
add_lambda = lambda x, y: x + y
print(add_lambda(2, 3)) # 5
람다 함수는 일회성으로 필요한 함수를 만들 때 주로 사용.
• 주로 key 인자, map 함수, Pandas의 apply 함수와 같이 사용.
• key 인자는 sorted 함수 등에서 정렬 기준을 나타내는 인자.
data = [(1, "apple"), (2, "banana"), (3, "cherry")]
sorted_data = sorted(data, key=lambda x: x[1])
print(sorted_data) # [(1, 'apple'), (2, 'banana'), (3, 'cherry')]
• map 함수는 순회 가능한 자료형의 각 요소에 동일한 함수를 적용하는데 쓰는 함수로, map(함수,
대상) 형태로 정의됩니다. 또한, 이 함수의 출력은 이터레이터임에 주의.
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared) # [1, 4, 9, 16]
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
생각정리
함수는 프로그램을 작은 단위로 나누어 관리할 수 있다는 점에서 코드 구조화의 핵심 도구라고 느꼈다. 특히 로컬 변수를 통해 함수 내부와 외부의 영역을 구분할 수 있어, 코드의 안정성과 예측 가능성이 높아진다는 점이 인상적이었다. 또한 람다 함수를 활용하면 불필요한 함수 정의 없이 간단히 로직을 적용할 수 있어, 효율적인 코딩 습관을 기르는 데 유용할 것 같다고 생각했다.
적용점
- 데이터 분석: 반복되는 데이터 전처리 과정을 함수로 정의하여 코드 중복을 줄이고, map + lambda를 이용해 Series 변환을 간단하게 처리한다.
- 프로젝트 개발: 회원가입, 로그인, 결제 계산 등 반복되는 기능을 함수로 분리하여 유지보수성과 가독성을 높인다.
- 학습 실습: 리스트 내 특정 조건을 만족하는 값을 반환하는 함수, 또는 여러 통계량(평균, 최댓값, 최솟값)을 한 번에 구하는 함수를 직접 작성해보며 함수 활용 능력을 키운다.
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-6 (0) | 2025.09.20 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-5 (0) | 2025.09.19 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-3 (0) | 2025.09.17 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-2 (0) | 2025.09.16 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-1 (0) | 2025.09.15 |