본문 바로가기
코딩교육/Python 초등교육에서 전문가까지

1단계 : 8. 함수와 모듈 (feat. 함수 정의 및 호출하기)

by 제리토리 2025. 1. 30.
728x90
반응형

 

Python의 함수(Function)는 프로그램을 구조화하고 재사용성을 높이는 데 중요한 역할을 합니다. 함수를 사용하면 반복적인 코드를 줄이고, 가독성을 높이며, 유지보수를 쉽게 할 수 있습니다. 이 장에서는 Python에서 함수를 정의하고 호출하는 방법을 살펴봅니다.

 

 

 

1. 함수란?

 

 

함수는 특정 작업을 수행하는 코드 블록으로, 필요할 때 호출하여 실행할 수 있습니다.

 

   • 입력(매개변수): 함수가 작업을 수행하기 위해 필요한 값.

   • 출력(반환값): 함수가 작업을 완료한 후 반환하는 결과.

 

 

 

2. 함수 정의

 

 

함수는 def 키워드를 사용하여 정의합니다.

 

   ㉮ 함수 정의의 기본 구조

def 함수이름(매개변수1, 매개변수2, ...):
    실행할 코드
    return 반환값

 

 

   ㉯ 매개변수 없는 함수

 

      매개변수가 없는 함수는 단순히 호출만으로 실행됩니다.

 

      예제: 인사말 출력

def say_hello():
    print("안녕하세요!")

# 함수 호출
say_hello()

 

      결과:

안녕하세요!

 

 

   ㉰ 매개변수가 있는 함수

 

      함수에 입력 값(매개변수)을 전달하여 동적으로 작업을 수행합니다.

 

      예제: 두 숫자의 합 계산

def add_numbers(a, b):
    print(f"두 숫자의 합: {a + b}")

# 함수 호출
add_numbers(5, 7)

 

      결과:

두 숫자의 합: 12

 

 

   ㉱ 반환값이 있는 함수

 

      return 문을 사용하여 함수의 결과를 반환합니다.

 

      예제: 두 숫자의 곱 반환

def multiply_numbers(a, b):
    return a * b

# 함수 호출
result = multiply_numbers(4, 5)
print(f"두 숫자의 곱: {result}")

 

      결과:

두 숫자의 곱: 20

 

 

 

3. 함수 호출

 

함수를 호출할 때는 함수 이름 뒤에 괄호를 붙입니다.

필요한 경우 매개변수를 괄호 안에 전달합니다.

 

   ㉮ 기본 호출

def greet():
    print("Hello!")

greet()  # 함수 호출

 

      결과:

Hello!

 

 

   ㉯ 여러 번 호출

 

      같은 함수를 여러 번 호출할 수 있습니다.

 

      예제: 반복적인 인사

def say_hi():
    print("Hi there!")

# 여러 번 호출
say_hi()
say_hi()

 

      결과:

Hi there!
Hi there!

 

 

 

4. 매개변수와 호출 방식

 

 

   ㉮ 위치 인수(Positional Arguments)

 

      매개변수의 순서에 따라 값을 전달합니다.

 

      예제

def greet_user(first_name, last_name):
    print(f"안녕하세요, {first_name} {last_name}님!")

greet_user("홍", "길동")

 

      결과:

안녕하세요, 홍 길동님!

 

 

   ㉯ 키워드 인수(Keyword Arguments)

 

      매개변수 이름을 지정하여 값을 전달합니다.

 

      예제

greet_user(last_name="길동", first_name="홍")

 

      결과:

안녕하세요, 홍 길동님!

 

 

   ㉰ 기본값 매개변수(Default Parameters)

 

      매개변수에 기본값을 설정하여, 인수가 전달되지 않을 경우 기본값을 사용합니다.

 

      예제

def greet_user(name="손님"):
    print(f"안녕하세요, {name}님!")

greet_user()  # 기본값 사용
greet_user("홍길동")  # 인수 전달

 

      결과:

안녕하세요, 손님님!
안녕하세요, 홍길동님!

 

 

 

5. 가변 매개변수

 

 

   ㉮ 가변 위치 인수

 

      매개변수 앞에 *를 붙여 여러 개의 값을 받을 수 있습니다.

 

      예제

def add_all(*numbers):
    total = sum(numbers)
    print(f"합계: {total}")

add_all(1, 2, 3, 4, 5)

 

      결과:

합계: 15

 

 

   ㉯ 가변 키워드 인수

 

      매개변수 앞에 **를 붙여 여러 개의 키워드 인수를 받을 수 있습니다.

 

      예제

def user_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

user_info(name="홍길동", age=30, city="서울")

 

      결과:

name: 홍길동
age: 30
city: 서울

 

 

 

6. 함수 활용 예제

 

   ㉮ 단순 계산기

def calculator(a, b, operation):
    if operation == "add":
        return a + b
    elif operation == "subtract":
        return a - b
    elif operation == "multiply":
        return a * b
    elif operation == "divide":
        return a / b
    else:
        return "잘못된 연산입니다."

result = calculator(10, 5, "add")
print(f"결과: {result}")

 

      결과:

결과: 15

 

 

   ㉯ 학생 점수 평균 계산

def calculate_average(*scores):
    return sum(scores) / len(scores)

average = calculate_average(85, 90, 78, 92)
print(f"평균 점수: {average:.2f}")

 

      결과:

평균 점수: 86.25

 

 

 

7. 함수 정의 시 주의사항

 

 

   ㉮ 반환값 필요 여부:

      • 반환값이 필요하지 않은 경우 return 문을 생략할 수 있습니다.

 

   ㉯ 매개변수 순서:

      • 위치 인수와 키워드 인수의 순서를 혼동하지 않아야 합니다.

 

   ㉰ 가독성 유지:

      • 함수 이름은 기능을 명확히 표현해야 합니다.

 

   ㉱ 중복 코드 제거:

      • 중복되는 코드를 함수로 추출하여 유지보수성을 높입니다.

 

 

 

8. 요약

 

 

Python의 함수는 코드 재사용성을 높이고 프로그램을 구조적으로 작성하는 데 필수적인 도구입니다.

함수를 올바르게 정의하고 호출하는 방법을 익히면 효율적인 프로그래밍이 가능합니다.

 

핵심 정리

 

   ㉮ 함수 정의:

      • def 키워드를 사용하여 함수 정의.

 

   ㉯ 매개변수:

      • 위치 인수, 키워드 인수, 기본값 매개변수.

 

   ㉰ 가변 인수:

      • argskwargs로 유연한 함수 작성 가능.

 

   ㉱ 함수 호출:

      • 함수 이름 뒤에 괄호를 사용하며, 필요한 경우 매개변수 전달.

 

728x90
반응형