본문 바로가기
Python

[Python] Week 6: 고급 함수

by cogito21_python 2024. 6. 1.
반응형

Day 1: 람다 함수

  • 강의 내용:
    • 람다 함수의 개념
      • 람다 함수의 정의와 사용법
      • 익명 함수의 특징과 용도
    • 람다 함수의 기본 구조
  • 실습:
    • 간단한 람다 함수 작성 및 호출
    • 여러 매개변수를 가지는 람다 함수 작성
# 람다 함수 정의 및 호출
add = lambda x, y: x + y
print(add(3, 5))  # 8

# 여러 매개변수를 가지는 람다 함수
multiply = lambda a, b, c: a * b * c
print(multiply(2, 3, 4))  # 24

 

Day 2: map, filter, reduce 함수

  • 강의 내용:
    • map 함수
      • map 함수의 개념과 사용법
      • 리스트와 람다 함수를 이용한 map 사용 예제
    • filter 함수
      • filter 함수의 개념과 사용법
      • 리스트와 람다 함수를 이용한 filter 사용 예제
    • reduce 함수
      • reduce 함수의 개념과 사용법
      • functools 모듈에서 reduce 함수 가져오기
  • 실습:
    • map, filter, reduce 함수를 사용한 예제 작성
# map 함수
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16, 25]

# filter 함수
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # [2, 4]

# reduce 함수
from functools import reduce
product = reduce(lambda x, y: x * y, numbers)
print(product)  # 120

 

Day 3: 데코레이터 I

  • 강의 내용:
    • 데코레이터의 개념
      • 데코레이터의 정의와 용도
      • 함수의 동작을 수정하는 방법
    • 함수 내에서 함수 정의
      • 내부 함수의 개념과 사용법
  • 실습:
    • 내부 함수를 사용하여 데코레이터 기본 예제 작성
# 함수 내에서 함수 정의
def outer_function():
    def inner_function():
        print("This is the inner function.")
    inner_function()

outer_function()

 

Day 4: 데코레이터 II

  • 강의 내용:
    • 기본 데코레이터 작성
      • 데코레이터 함수 정의
      • 데코레이터를 사용하여 함수 수정
    • 데코레이터의 장점과 활용 예제
  • 실습:
    • 데코레이터를 사용한 함수 작성 및 호출
# 기본 데코레이터 작성
def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

 

Day 5: 데코레이터 III

  • 강의 내용:
    • 매개변수를 가진 데코레이터
      • 매개변수가 있는 함수에 데코레이터 적용
    • 다양한 데코레이터 작성 방법
  • 실습:
    • 매개변수를 가진 데코레이터 작성 및 호출
# 매개변수를 가진 데코레이터
def my_decorator(func):
    def wrapper(*args, **kwargs):
        print("Something is happening before the function is called.")
        result = func(*args, **kwargs)
        print("Something is happening after the function is called.")
        return result
    return wrapper

@my_decorator
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")

 

Day 6: 클로저

  • 강의 내용:
    • 클로저의 개념
      • 클로저의 정의와 사용법
      • 클로저의 특징과 활용 예제
    • 클로저와 데코레이터의 차이점
  • 실습:
    • 클로저를 사용한 함수 작성 및 호출
# 클로저 작성
def outer_function(message):
    def inner_function():
        print(message)
    return inner_function

closure = outer_function("Hello, this is a closure!")
closure()

 

Day 7: 고급 함수 종합 연습 및 프로젝트

  • 강의 내용:
    • 고급 함수 종합 연습 문제 풀이
      • 다양한 고급 함수 작성 및 호출 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 고급 함수를 활용한 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 리스트의 각 요소에 제곱을 적용하는 함수 작성 (map 함수 사용)
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared)  # [1, 4, 9, 16, 25]

# 연습 문제 2: 리스트에서 짝수만 필터링하는 함수 작성 (filter 함수 사용)
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)  # [2, 4]

# 연습 문제 3: 문자열을 입력받아, 단어의 개수를 세는 함수 작성 (클로저 사용)
def word_counter():
    def count_words(sentence):
        words = sentence.split()
        return len(words)
    return count_words

counter = word_counter()
sentence = "This is a sample sentence with seven words."
word_count = counter(sentence)
print(f"단어 개수: {word_count}")

 

이 강의는 파이썬의 고급 함수를 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 다음 주차에 대한 상세 강의를 원하시면 말씀해 주세요!

반응형

'Python' 카테고리의 다른 글

[Python] Week 8: 튜플  (0) 2024.06.01
[Python] Week 7: 리스트  (0) 2024.06.01
[Python] Week 5: 함수 정의 및 호출  (0) 2024.06.01
[Python] Week 4: 반복문  (0) 2024.06.01
[Python] Week 3: 조건문  (0) 2024.06.01