반응형
📘 Day 15. 함수 인자 활용과 모듈 개념 이해
1. 함수 설계 시 고려 순서
- 무슨 기능을 수행할지 결정
- 호출 시 전달받을 인수(parameter) 결정
- 결과를 return할지 여부 결정
2. 함수의 인수(Argument & Parameter)
용어 설명
Parameter | 함수 정의 시 사용된 변수 |
Argument | 함수 호출 시 전달하는 값 |
3. 인수 전달 방식
전달 방식 특징
Call by Value | 값을 복사하여 전달 (불변 자료형: int, float, str, tuple) |
Call by Reference | 참조(메모리 주소)를 전달 (가변 자료형: list, dict, set) |
Call by Object | 파이썬에서 사용되는 방식. 전달된 객체의 특성에 따라 동작 |
예시
def modify_list(my_list):
my_list.append(4)
lst = [1, 2, 3]
modify_list(lst)
print(lst) # [1, 2, 3, 4]
→ list는 가변 자료형이라 함수 안에서 변경하면 원본에도 영향
4. 변수의 유효 범위 (Scope)
변수 유형 위치 접근 가능 범위
지역 변수 | 함수 내부 | 함수 내부에서만 사용 가능 |
전역 변수 | 함수 외부 | 스크립트 전체에서 접근 가능 |
x = 10 # 전역 변수
def func():
global x
x = 20
func()
print(x) # 20
전역 변수는 global 키워드를 통해 함수 내부에서 수정 가능
5. 다양한 인수의 형태
✅ 기본 인수 (default argument)
def greet(name="친구"):
print(f"{name}님, 안녕하세요!")
greet() # 친구님, 안녕하세요!
greet("철수") # 철수님, 안녕하세요!
기본값을 지정한 인수는 항상 오른쪽부터 작성
✅ 키워드 인수 (keyword argument)
def introduce(name, age):
print(f"이름: {name}, 나이: {age}")
introduce(age=25, name="지우") # 순서 상관없이 호출 가능
✅ 가변 인수 (variable-length argument)
🌟 *args : 여러 개의 인수를 튜플 형태로 받음
def add_all(*args):
return sum(args)
print(add_all(1, 2, 3)) # 6
🌟 **kwargs : 여러 개의 키워드 인수를 딕셔너리로 받음
def show_info(**kwargs):
for key, value in kwargs.items():
print(f"{key} : {value}")
show_info(name="지민", age=20)
6. 모듈(Module) 개념 예고
- 함수들을 모아놓은 .py 파일
- 재사용성과 코드 분리를 위한 좋은 방식
- 다음 차시에서 자세히 다룸
✅ 오늘의 정리
항목 내용
인수 유형 | 기본, 키워드, 가변 인수 (*args, **kwargs) |
자료형에 따른 전달 방식 | 불변 자료형: 복사 / 가변 자료형: 참조 전달 |
변수 범위 | 지역 변수, 전역 변수 (global 키워드 주의) |
함수 설계 단계 | 기능 결정 → 인수 → 반환값 |
재사용을 위한 방법 | 함수 → 모듈 → 패키지 |
다음 시간에는 모듈과 패키지, 그리고 객체와 클래스의 기초를 배웁니다.
이제부터는 파이썬의 구조적 프로그래밍을 넘어 객체지향적 사고로 확장할 준비를 하게 됩니다.
'십대를 위한 코딩 > 십대를 위한 파이썬' 카테고리의 다른 글
파이썬 불리언 자료형, 숫자처럼 연산된다? (1) | 2025.04.19 |
---|---|
16. 함수 고급 활용과 모듈의 기초 (1) | 2025.04.06 |
14. 함수(Function)의 정의, 구조, 그리고 호출 방식 (1) | 2025.04.04 |
13. 집합(Set)과 함수(Function)의 기초 (1) | 2025.04.03 |
12. 딕셔너리 메서드와 실전 활용 (0) | 2025.04.02 |