본문 바로가기
Python

[Python] Week 5: 함수 정의 및 호출

by cogito21_python 2024. 6. 1.
반응형

Day 1: 함수의 개념과 기본 구조

  • 강의 내용:
    • 함수의 개념
      • 함수의 필요성과 장점
      • 코드 재사용과 가독성 향상
    • 함수의 기본 구조
      • 함수 정의 (def 키워드)
      • 함수 이름과 매개변수
      • return 문
  • 실습:
    • 기본적인 함수 정의와 호출
# 함수 정의
def greet():
    print("Hello, Python!")

# 함수 호출
greet()  # "Hello, Python!" 출력

 

Day 2: 매개변수와 인자

  • 강의 내용:
    • 매개변수
      • 함수 정의 시 매개변수 선언
      • 매개변수의 역할
    • 인자
      • 함수 호출 시 인자 전달
      • 위치 인자와 키워드 인자
  • 실습:
    • 매개변수가 있는 함수 정의와 호출
# 매개변수가 있는 함수 정의
def greet(name):
    print(f"Hello, {name}!")

# 함수 호출
greet("Alice")  # "Hello, Alice!" 출력
greet("Bob")    # "Hello, Bob!" 출력

 

Day 3: 기본값 인자

  • 강의 내용:
    • 기본값 인자
      • 기본값 인자의 개념
      • 함수 정의 시 기본값 설정
    • 기본값 인자의 사용 예제
  • 실습:
    • 기본값 인자를 사용한 함수 정의와 호출
# 기본값 인자가 있는 함수 정의
def greet(name="Python"):
    print(f"Hello, {name}!")

# 함수 호출
greet()          # "Hello, Python!" 출력
greet("Alice")   # "Hello, Alice!" 출력

 

Day 4: 키워드 인자와 위치 인자

  • 강의 내용:
    • 키워드 인자
      • 키워드 인자의 개념
      • 함수 호출 시 키워드 인자 사용
    • 위치 인자
      • 위치 인자의 개념
      • 위치 인자와 키워드 인자 혼합 사용
  • 실습:
    • 키워드 인자와 위치 인자를 사용한 함수 호출
# 키워드 인자와 위치 인자가 있는 함수 정의
def describe_pet(pet_name, animal_type="dog"):
    print(f"I have a {animal_type}.")
    print(f"My {animal_type}'s name is {pet_name}.")

# 함수 호출
describe_pet("Willie")                   # 기본값 인자를 사용: dog
describe_pet(pet_name="Willie")          # 키워드 인자를 사용
describe_pet("Harry", "hamster")         # 위치 인자를 사용
describe_pet(animal_type="cat", pet_name="Whiskers")  # 키워드 인자의 순서 변경

 

Day 5: 가변 인자 (*args, **kwargs)

  • 강의 내용:
    • 가변 인자
      • *args: 가변 위치 인자
      • **kwargs: 가변 키워드 인자
    • 가변 인자의 사용 예제
  • 실습:
    • *args와 **kwargs를 사용한 함수 정의와 호출
# 가변 위치 인자 (*args)
def make_pizza(size, *toppings):
    print(f"\nMaking a {size}-inch pizza with the following toppings:")
    for topping in toppings:
        print(f"- {topping}")

# 함수 호출
make_pizza(12, "pepperoni")
make_pizza(16, "mushrooms", "green peppers", "extra cheese")

# 가변 키워드 인자 (**kwargs)
def build_profile(first, last, **user_info):
    profile = {
        "first_name": first,
        "last_name": last
    }
    for key, value in user_info.items():
        profile[key] = value
    return profile

# 함수 호출
user_profile = build_profile("albert", "einstein", location="princeton", field="physics")
print(user_profile)

 

Day 6: 함수 반환값

  • 강의 내용:
    • 함수 반환값
      • return 문을 이용한 값 반환
      • 여러 값 반환 (튜플 사용)
    • 반환값을 사용하는 함수 예제
  • 실습:
    • 값을 반환하는 함수 정의와 호출
# 단일 값 반환
def add(a, b):
    return a + b

# 함수 호출
result = add(3, 5)
print(result)  # 8

# 여러 값 반환 (튜플 사용)
def get_full_name(first_name, last_name):
    full_name = f"{first_name} {last_name}"
    initials = f"{first_name[0]}{last_name[0]}"
    return full_name, initials

# 함수 호출
name, initials = get_full_name("Albert", "Einstein")
print(name)       # "Albert Einstein"
print(initials)   # "AE"

 

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

  • 강의 내용:
    • 함수 종합 연습 문제 풀이
      • 다양한 함수 작성 및 호출 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 함수 활용 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 두 숫자를 입력받아 사칙연산 결과를 반환하는 함수 작성
def calculate(a, b):
    return a + b, a - b, a * b, a / b if b != 0 else None

# 함수 호출
add, subtract, multiply, divide = calculate(10, 5)
print(f"덧셈: {add}, 뺄셈: {subtract}, 곱셈: {multiply}, 나눗셈: {divide}")

# 연습 문제 2: 리스트의 평균을 계산하는 함수 작성
def calculate_average(numbers):
    total = sum(numbers)
    return total / len(numbers)

# 함수 호출
numbers = [10, 20, 30, 40, 50]
average = calculate_average(numbers)
print(f"평균: {average}")

# 연습 문제 3: 문자열을 받아 단어 개수를 세는 함수 작성
def count_words(sentence):
    words = sentence.split()
    return len(words)

# 함수 호출
sentence = "This is a sample sentence with seven words."
word_count = count_words(sentence)
print(f"단어 개수: {word_count}")

 

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

반응형

'Python' 카테고리의 다른 글

[Python] Week 7: 리스트  (0) 2024.06.01
[Python] Week 6: 고급 함수  (0) 2024.06.01
[Python] Week 4: 반복문  (0) 2024.06.01
[Python] Week 3: 조건문  (0) 2024.06.01
[Python] Week 2: 파이썬 기본 문법  (0) 2024.06.01