ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 튜토리얼 06 함수
    Study/Python 튜토리얼 2025. 9. 26. 10:10

    목차

     

    1. 들어가며: 파이썬 코드의 재사용, 함수(Function) 정복하기
    2. 함수의 기본: 개념과 구조
      • 2-1. 기본적인 함수 구조 (정의와 호출)
      • 2-2. 매개변수(Parameter)와 인수(Argument)
      • 2-3. 기본값(Default) 매개변수
    3. 함수의 핵심: 반환(return)과 활용
      • 3-1. return으로 결과값 돌려주기
      • 3-2. 여러 값 반환하기
      • 3-3. print와 return의 차이점
    4. 심화 개념: 변수의 범위(Scope)와 동작 원리
      • 4-1. 지역 변수(Local Variable)와 전역 변수(Global Variable)
      • 4-2. 함수 호출과 스택(Stack)의 이해
    5. 마치며: 함수로 더 깔끔하고 효율적인 코드 만들기

     


     

    들어가며: 파이썬 코드의 재사용, 함수(Function) 정복하기

    안녕하세요! 이번 시간에는 파이썬 프로그래밍의 핵심 구성 요소인 함수(Function)에 대해 알아보겠습니다.

     

    함수는 특정 작업을 수행하는 코드 뭉치를 이름으로 묶어, 필요할 때마다 재사용할 수 있게 해주는 강력한 도구입니다. 함수를 사용하면 코드의 중복을 피하고, 프로그램을 논리적인 단위로 나눌 수 있어 가독성과 유지보수성이 크게 향상됩니다.

     

    이 글을 통해 함수의 기본 정의 방법부터 매개변수, 반환 값, 그리고 변수의 유효 범위(Scope)와 같은 심화 개념까지 완벽하게 익혀보세요.

     

     


     

    2. 함수의 기본: 개념과 구조

    함수는 def 키워드로 정의하고, 함수 이름을 호출하여 실행합니다. 가장 기본적인 구조부터 차근차근 살펴보겠습니다.

    2-1. 기본적인 함수 구조 (정의와 호출)

    함수는 def 함수이름(): 형태로 정의하며, 함수가 수행할 코드는 들여쓰기를 통해 작성합니다. 정의된 함수는 함수이름()으로 호출하여 실행할 수 있습니다.

     
    # 예제 1: "안녕"을 출력하는 가장 간단한 함수
    def print_hello():
        print("안녕")
    
    # 함수 호출
    print_hello()
    # 안녕
    
    # 예제 2: 함수는 여러 번 재사용할 수 있습니다.
    print_hello()
    print_hello()
    # 안녕
    # 안녕
    

    2-2. 매개변수(Parameter)와 인수(Argument)

    함수는 외부로부터 값을 전달받아 처리할 수 있습니다.

    함수를 정의할 때 받는 변수를 매개변수(Parameter), 함수를 호출할 때 전달하는 실제 값을 인수(Argument)라고 합니다.

    # 예제 1: 하나의 매개변수를 사용하는 함수
    def print_with_love(string):
        print(string + "♡")
    
    print_with_love("파이썬")
    # 파이썬♡
    
    # 예제 2: 두 개의 매개변수를 사용하는 함수
    def print_sum(a, b):
        print(a + b)
    
    print_sum(3, 4)
    # 7
    
    # 예제 3: 매개변수를 활용한 짝수/홀수 판별
    def print_even_odd(num):
        if num % 2 == 0:
            print("짝수")
        else:
            print("홀수")
    
    print_even_odd(5)
    # 홀수
    

    2-3. 기본값(Default) 매개변수

    함수를 호출할 때 인수를 전달하지 않으면, 매개변수는 미리 지정된 기본값을 사용하게 할 수 있습니다.

    # 예제: count 매개변수에 기본값 1을 지정
    def print_hello_default(name, count=1):
        for i in range(count):
            print(name, "안녕")
    
    # count 인수를 생략하면 기본값 1이 사용됨
    print_hello_default("홍길동")
    # 홍길동 안녕
    
    # count 인수를 전달하면 해당 값이 사용됨
    print_hello_default("김철수", 3)
    # 김철수 안녕
    # 김철수 안녕
    # 김철수 안녕
    

     

     


     

    3. 함수의 핵심: 반환(return)과 활용

    함수가 특정 작업을 수행한 후, 그 결과값을 호출한 곳으로 돌려줄 때 return 키워드를 사용합니다.

    3-1. return으로 결과값 돌려주기

    return을 사용하면 함수의 실행 결과를 변수에 저장하거나 다른 연산에 바로 활용할 수 있습니다.

    # 예제: 두 숫자의 평균을 계산하여 반환하는 함수
    def average(a, b):
        return (a + b) / 2
    
    # 함수의 반환 값을 result 변수에 저장
    result = average(10, 20)
    print(result)
    # 15.0
    

    3-2. 여러 값 반환하기

    파이썬 함수는 튜플(tuple)을 이용하여 여러 개의 값을 동시에 반환할 수 있습니다.

    # 예제: 리스트에서 최소값과 최대값을 함께 반환
    def get_min_max(data_list):
        min_val = min(data_list)
        max_val = max(data_list)
        return (min_val, max_val)
    
    min_result, max_result = get_min_max([3, 5, 2, 8, 1])
    print("최소값:", min_result)
    print("최대값:", max_result)
    # 최소값: 1
    # 최대값: 8
    

    3-3. print와 return의 차이점

    print는 단순히 화면에 값을 '보여주는' 기능이며, return은 값을 '반환'하여 프로그램의 흐름 속에서 재사용할 수 있게 합니다.

    def print_function(a, b):
        print(a + b)
    
    def return_function(a, b):
        return a + b
    
    # print 함수는 반환 값이 없으므로 result_a는 None이 됨
    result_a = print_function(5, 10)
    print("print 함수의 결과:", result_a)
    # 15
    # print 함수의 결과: None
    
    # return 함수는 값을 반환하므로 result_b에 저장하여 활용 가능
    result_b = return_function(5, 10)
    print("return 함수의 결과:", result_b)
    # return 함수의 결과: 15
    

     

     


     

    4. 심화 개념: 변수의 범위(Scope)와 동작 원리

    변수가 코드의 어느 부분에서 유효한지를 '변수의 범위(Scope)'라고 합니다. 함수와 변수의 범위를 이해하는 것은 매우 중요합니다.

    4-1. 지역 변수(Local Variable)와 전역 변수(Global Variable)

    • 지역 변수: 함수 내부에서 선언된 변수로, 오직 그 함수 안에서만 유효합니다.
    • 전역 변수: 함수 바깥에서 선언된 변수로, 코드 전체에서 접근할 수 있습니다.
    a = 1  # 전역 변수
    
    def sample_function():
        a = 2  # 'a'라는 새로운 지역 변수가 생성됨
        print("함수 안:", a)
    
    # 예제 1: 함수 안에서 변수를 수정해도 전역 변수는 바뀌지 않음
    sample_function()
    print("함수 밖:", a)
    # 함수 안: 2
    # 함수 밖: 1
    
    # 예제 2: 함수 안에서 전역 변수를 읽는 것은 가능
    b = 10 # 전역 변수
    def print_b():
        print(b)
    
    print_b()
    # 10
    

    4-2. 함수 호출과 스택(Stack)의 이해

    함수가 다른 함수를 호출하는 과정은 '스택(Stack)'이라는 자료 구조처럼 동작합니다. 나중에 호출된 함수가 먼저 실행을 마치고 자신의 결과를 이전 함수에 반환하는 '후입선출(LIFO)' 구조를 가집니다.

    # 예제: 함수가 연쇄적으로 호출되는 과정
    def 함수0(num):
        return num * 2
    
    def 함수1(num):
        return 함수0(num + 2)
    
    def 함수2(num):
        num = num + 10
        return 함수1(num)
    
    result = 함수2(0)
    print(result)
    # 24
    
    # 실행 순서
    # 1. 함수2(0) 호출 -> num은 10이 되고, 함수1(10)을 호출
    # 2. 함수1(10) 호출 -> num+2는 12가 되고, 함수0(12)을 호출
    # 3. 함수0(12) 호출 -> 12 * 2의 결과인 24를 반환
    # 4. 반환된 24는 함수1로, 다시 함수2로 전달되어 최종 결과가 됨
    

     

     


     

    마치며: 함수로 더 깔끔하고 효율적인 코드 만들기

    함수는 파이썬 프로그래밍의 가장 기본적인 동시에 가장 중요한 구성 요소입니다.

    반복되는 코드를 함수로 묶으면 프로그램을 훨씬 구조적이고 이해하기 쉽게 만들 수 있습니다.

     

    오늘 배운 함수의 정의, 매개변수 활용, return의 의미, 변수의 범위 등을 잘 숙지하고 직접 다양한 함수를 만들어보는 연습을 해보세요.

    함수를 자유자재로 다루는 능력은 더 복잡하고 멋진 프로그램을 만드는 든든한 초석이 될 것입니다!

     

     

    코드 출처: https://wikidocs.net/23905

     

    09. 파이썬 함수

    조금 더 자세한 설명을 원한다면 클래스101의 "Level2 중급 파이썬"을 추천합니다. 고급 문법을 아는 것이 고급 실력을 의미하지 않습니다. "Level1 기초 파이썬"부터 …

    wikidocs.net

     

Designed by Tistory.