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

2단계 : 4. 함수 (함수 정의와 호출 - def 키워드)

by 제리토리 2025. 3. 17.
728x90
반응형

 

 

함수(Function)는 특정 작업을 수행하는 코드 블록으로, 코드의 재사용성을 높이고, 유지보수를 용이하게 하며, 프로그램을 모듈화하는 데 중요한 역할을 합니다. Python에서는 def 키워드를 사용하여 함수를 정의할 수 있습니다.

 

이 장에서는 함수의 개념, 정의 방법, 호출 방식, 매개변수 전달, 반환값 처리, 그리고 함수의 장점까지 자세히 살펴봅니다.

 

 

1. 함수란 무엇인가?

 

㉮ 함수의 개념

 

함수(Function)는 특정 입력을 받아 처리를 수행한 후 결과값을 반환하거나 특정 작업을 실행하는 코드 블록입니다.

함수를 사용하면 반복되는 코드를 줄이고, 가독성을 향상시키며, 유지보수성을 높일 수 있습니다.

 

㉯ 함수의 기본 구조

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

 

  • def: 함수를 정의하는 키워드

  • 함수이름: 함수의 고유한 이름 (소문자와 _ 사용 권장)

  • 매개변수(Parameter): 함수에 전달되는 입력값 (선택 사항)

  • 실행할 코드: 함수가 수행할 작업

  • return: 함수 실행 결과를 반환하는 키워드 (필수 아님)

 

 

2. Python에서 함수 정의 (def 키워드 사용)

 

㉮  기본적인 함수 정의와 호출

 

함수를 정의할 때는 def 키워드를 사용하며, 호출(Call)할 때는 함수 이름을 사용합니다.

 

  (1) 함수 정의

def greet():
    print("안녕하세요! Python을 배우고 있습니다.")

 

  (2) 함수 호출

greet()

 

출력결과

안녕하세요! Python을 배우고 있습니다.

 

  • 함수는 정의만 해서는 실행되지 않으며, 반드시 호출해야 실행됨.

 

 

㉯ 매개변수가 있는 함수

 

함수는 매개변수(Parameter)를 사용하여 외부에서 값을 받아 처리할 수 있습니다.

 

  (1) 매개변수를 사용하는 함수 정의

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

 

  (2) 함수 호출 (매개변수 전달)

greet("철수")
greet("영희")

 

출력결과

안녕하세요, 철수님!
안녕하세요, 영희님!

 

  • name 매개변수를 사용하여 동적인 출력이 가능.

  • 같은 코드 구조를 유지하면서 다양한 값을 입력하여 실행 가능.

 

 

㉰ 여러 개의 매개변수를 가진 함수

 

함수는 여러 개의 매개변수를 가질 수도 있습니다.

def add(a, b):
    return a + b

result = add(3, 5)
print(f"두 수의 합: {result}")

 

출력결과

두 수의 합: 8

 

  • ab를 받아 두 수를 더한 결과를 반환.

  • return을 사용하면 함수 결과를 변수에 저장하거나, 다른 연산에 사용할 수 있음.

 

 

3. 함수의 반환값 (return 키워드)

 

return 키워드는 함수의 실행 결과를 호출한 곳으로 반환(return)하는 역할을 합니다.

 

㉮ 반환값이 있는 함수

def square(n):
    return n * n  # n의 제곱을 반환

result = square(4)
print(result)  # 16 출력

 

  • return을 사용하면 함수 결과를 변수에 저장하거나 다른 연산에 활용 가능.

 

 

㉯ 반환값이 없는 함수

def say_hello():
    print("Hello, World!")

result = say_hello()
print(result)  # None 출력

 

출력결과

Hello, World!
None

 

  • return을 사용하지 않으면 함수는 None을 반환.

 

 

㉰ 다중 반환값 (여러 개의 값 반환)

 

Python에서는 튜플(Tuple)을 이용하여 여러 개의 값을 반환할 수 있습니다.

def calculate(a, b):
    sum_result = a + b
    diff_result = a - b
    return sum_result, diff_result  # 두 개의 값 반환

sum_value, diff_value = calculate(10, 5)
print(f"합: {sum_value}, 차: {diff_value}")

 

출력결과

합: 15, 차: 5

 

  • return을 이용해 두 개 이상의 값을 동시에 반환 가능.

  • 튜플 형식으로 반환되며, 여러 개의 변수로 받을 수도 있음.

 

 

 

4. 함수 호출 방식

 

㉮ 직접 호출

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

greet()

 

 

㉯ 다른 함수에서 호출

 

함수는 다른 함수 내부에서도 호출할 수 있습니다.

def square(n):
    return n * n

def print_square(x):
    result = square(x)
    print(f"{x}의 제곱: {result}")

print_square(5)

 

출력결과

5의 제곱: 25

 

  • print_square(5)에서 square(5)를 호출하여 제곱값을 계산.

 

 

 

5. 함수의 장점

 

㉮ 코드 재사용성 (Reusability)

  • 같은 기능을 여러 번 구현할 필요 없이, 함수 호출로 쉽게 재사용 가능.

 

㉯ 코드 가독성 (Readability)

  • 복잡한 프로그램을 작은 블록(함수)으로 나누어 가독성을 향상.

 

㉰ 유지 보수성 (Maintainability)

  • 특정 기능의 코드만 수정하면 되므로, 유지보수가 쉬워짐.

 

 

 

6. 요약

 

  • 함수는 def 키워드를 사용하여 정의하며, 특정 작업을 수행하는 코드 블록.

  • 매개변수를 사용하면 외부에서 값을 전달받아 동적 실행이 가능.

  • return을 사용하여 함수 결과를 반환할 수 있으며, 여러 개의 값도 반환 가능.

  • 함수는 코드 재사용성을 높이고 유지보수를 용이하게 하는 중요한 도구.

 

 

 

728x90
반응형