데이터 분석 13일차 (파이썬 9일) 파이썬 종합반 4주차
- 함수는 특정 기능을 수행하는 코드로, 필요할 때 여러 번 호출할 수 있는 구조!
✔ 코드 재사용 가능하게 함
✔ 코드 논리적으로 나누어 가독성을 높임
✔ 입력(매개변수)을 받아 결과(출력)를 반환할 수 있음
- 함수를 정의할 때는 def 키워드를 사용!
def 함수이름(매개변수):
실행할 코드
return 반환값
| 요소 | 설명 |
|---|---|
def | 함수를 정의할 때 사용 |
| 함수이름 | 함수의 이름 (기능을 설명하는 이름이 좋음) |
| 매개변수 (Parameter) | 함수가 받을 입력값 (선택사항) |
return | 함수의 결과를 반환 (없어도 됨) |
| 구분 | 설명 | 예제 |
|---|---|---|
| 전역변수 | 함수 바깥에서 선언되며, 프로그램 전체에서 접근 가능 | x = 10 (함수 외부) |
| 지역변수 | 함수 내부에서 선언되며, 해당 함수 안에서만 사용 가능 | def func(): y = 5 |
x = 10 # 전역변수
def my_func():
y = 5 # 지역변수
print("지역 변수 y:", y)
my_func()
print("전역 변수 x:", x)
# print(y) # ❌ 오류 발생 (y는 함수 내부에서만 사용 가능)
| 용어 | 설명 | 예제 |
|---|---|---|
| 매개변수 (Parameter) | 함수 정의 시 입력값을 받기 위한 변수 | def greet(name): |
| 인수 (Argument) | 함수 호출 시 실제로 전달하는 값 | greet("Alice") |
def greet(name): # name → 매개변수 (Parameter)
print(f"안녕하세요, {name}님!")
greet("Alice") # "Alice" → 인수 (Argument)
def add(a, b):
return a + b
print(add(3, 5)) # ✅ a=3, b=5로 전달
print(add(5, 3)) # ✅ a=5, b=3 → 결과가 달라짐!
def introduce(name, age):
print(f"이름: {name}, 나이: {age}")
introduce(name="Alice", age=25) # ✅ 순서 상관없음
introduce(age=30, name="Bob") # ✅ 순서 바뀌어도 동작
def greet(name="손님"):
print(f"안녕하세요, {name}님!")
greet() # 기본값 '손님' 사용
greet("Alice") # Alice로 변경됨
def greet(name="Guest", age=25):
print("이름:", name)
print("나이:", age)
# 키워드 인수를 사용하여 함수 호출
greet(name="Alice", age=30)
# 일부 매개변수에만 키워드 인수 사용하여 호출
greet(name="Bob")
✔️ *args → 여러 개의 위치 인수 받기
def sum_values(*args):
total = 0
for num in args:
total += num
return total
result = sum_values(1, 2, 3, 4, 5)
print("합계:", result) # 출력: 합계: 15
✔️ **kwargs → 여러 개의 키워드 인수 받기
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30, country="USA")
✔️ 추가 예제
# *args 사용 예제 (여러 개의 위치 인수)
def add(*numbers):
return sum(numbers)
print(add(1, 2, 3, 4, 5)) # ✅ 여러 개의 숫자 전달 가능
# **kwargs 사용 예제 (여러 개의 키워드 인수)
def user_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
user_info(name="Alice", age=25, city="Seoul") # ✅ 키워드 인수 여러 개 전달
| 개념 | 설명 | 예제 |
|---|---|---|
| 전역변수 & 지역변수 | 함수 외부/내부에서 사용되는 변수 | x = 10 (전역) / y = 5 (지역) |
| 매개변수 & 인수 | 함수 정의 vs 호출 시 전달값 | def greet(name): / greet("Alice") |
| 위치 인수 | 순서대로 전달되는 인수 | add(3, 5) |
| 키워드 인수 | 매개변수 이름을 직접 지정 | introduce(name="Alice", age=25) |
| 기본값 | 매개변수에 기본값 설정 | def greet(name="손님"): |
| 키워드 인수 + 기본값 | 기본값과 함께 키워드 인수 사용 | order("커피", size="Large") |
| 가변 인수 | *args, **kwargs를 이용해 여러 개 전달 | add(1,2,3,4), user_info(name="Alice", age=25) |
💡SQL 코드카타 풀면서 알게 된것!