📌 Python 함수 심화 – 실력 향상과 함수화 연습
✅ 1. return을 사용하는 이유와 역할
- 값을 반환하기 위해 사용: 함수가 실행된 결과값을 호출한 위치로 전달.
- 함수 종료: return을 만나면 함수가 즉시 종료되고, 이후 코드는 실행되지 않음.
def add(a: int, b: int) -> int:
return a + b
result = add(3, 5)
print(result)
출력 결과
8
✅ 2. 마이크로 모듈화와 함수화 연습
- 함수를 작은 기능 단위로 쪼개어 재사용성과 유지보수성을 높이기.
def is_even(number: int) -> bool:
return number % 2 == 0
def square(number: int) -> int:
return number ** 2
def process_numbers(numbers: list[int]) -> int:
return sum([square(num) for num in numbers if is_even(num)])
result = process_numbers([1, 2, 3, 4, 5])
print(result)
출력 결과
20
✅ 이점
- 코드 가독성 향상
- 재사용성과 유지보수성 증가
✅ 3. 내장 함수를 직접 구현해보기 (기초 실력 다지기)
- 내장 함수를 직접 구현하여 작동 원리 파악
def my_sum(numbers: list[int]) -> int:
total = 0
for num in numbers:
total += num
return total
print(my_sum([1, 2, 3]))
출력 결과
6
🔥 직접 구현해본 후 내장 함수와 비교해보는 연습이 중요합니다.
✅ 4. 문제를 함수로 쪼개고 다시 풀어보기
- 기존 문제를 더 깔끔하고 함수화해서 다시 풀어보기
def input_numbers() -> list[int]:
return [int(x) for x in input("숫자 입력 (공백으로 구분): ").split()]
def filter_even(numbers: list[int]) -> list[int]:
return [num for num in numbers if num % 2 == 0]
def calculate_sum(numbers: list[int]) -> int:
return sum(numbers)
def main() -> None:
numbers = input_numbers()
even_numbers = filter_even(numbers)
total = calculate_sum(even_numbers)
print(f"짝수들의 합은 {total}입니다.")
main()
출력 결과
숫자 입력 (공백으로 구분): 1 2 3 4 5
짝수들의 합은 6입니다.
⚡ 실무에서 필요한 연습: 입력 → 처리 → 출력의 구조로 나누어 함수화 연습하기.
✅ 5. 실력을 올리기 위한 연습 팁
- 직접 구현
- 내장 함수가 없는 것처럼 직접 구현해보기.
- 함수 쪼개기 연습
- 문제를 작게 쪼개어 작은 단위의 함수로 해결하기.
- 기존 문제 복습 및 리팩토링
- 기존 문제를 더 깔끔하게 풀어보고, 코드를 더 효율적으로 리팩토링.
- 타인의 코드 분석
- 깔끔한 코드를 보고 "왜 이렇게 작성했는지" 분석하고 직접 적용해보기.
✅ 6. 결론
- 내장 함수의 작동 원리를 이해하고 직접 구현해보세요.
- 문제를 함수로 쪼개어 결합하는 연습을 하세요.
- 리팩토링과 복습을 통해 기존 코드를 더 깔끔하게 개선해보세요.
- 타인의 코드를 참고하여 실력을 업그레이드해보세요.
🚀 "새로운 문제보다 기존 문제를 다시 함수화하는 연습이 실력을 빠르게 높여줍니다!"
'Python' 카테고리의 다른 글
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) 심화 문제풀이 (0) | 2025.03.13 |
---|---|
📌 Python 학습 과정 – 이해와 반복의 중요성 (0) | 2025.03.13 |
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-12. 타입 어노테이션과 힌트 (0) | 2025.03.13 |
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-11. 제너레이터 (0) | 2025.03.13 |
[[OZ코딩스쿨] 초격차 캠프 - 10일차 (함수) Chapter 6-10. 람다 (0) | 2025.03.13 |