ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 기초 : Functions(함수), Lambda Expressions(람다 표현식)
    🐍 Python 2025. 1. 21. 12:54
    728x90

    함수란?

    함수(Function)는 특정 작업을 수행하는 코드 블록입니다. 코드를 재사용 가능하게 만들고, 중복을 줄이며, 프로그램의 가독성을 높이는 데 도움을 줍니다.


    함수 사용의 장점

    코드 재사용성

    한 번 정의한 함수는 여러 번 호출하여 사용할 수 있습니다. 동일한 작업을 여러 번 수행해야 할 때, 함수를 사용하면 코드의 중복을 줄이고 생산성을 높일 수 있습니다.

    def greet(name):
        print(f"안녕하세요, {name}님!")
    
    # 동일한 함수를 여러 번 호출
    greet("홍길동")
    greet("김철수")
    greet("이영희")


    가독성 향상

    함수로 코드를 나누면 각 부분의 역할이 명확해져 코드가 더 읽기 쉬워집니다. 특히, 함수 이름으로 작업의 목적을 설명할 수 있어 가독성이 크게 향상됩니다.

    def calculate_area(width, height):
        return width * height
    
    area = calculate_area(5, 10)
    print(f"면적: {area}")


    유지보수 용이

    함수를 사용하면 코드를 수정하거나 확장하기가 더 쉬워집니다. 문제가 생겼을 때, 함수 내부만 수정하면 동일한 작업을 수행하는 모든 코드가 자동으로 반영됩니다.

    # 세금을 계산하는 함수
    def calculate_tax(price, tax_rate=0.1):
        return price * tax_rate
    
    # 함수 수정 전
    print(calculate_tax(100))  # 출력: 10.0
    
    # 함수 수정 후 (세율 변경)
    def calculate_tax(price, tax_rate=0.15):
        return price * tax_rate
    
    print(calculate_tax(100))  # 출력: 15.0

     

    코드중복제거

    함수를 사용하면 동일한 작업을 수행하는 코드를 반복해서 작성할 필요가 없습니다. 코드 중복은 유지보수의 큰 어려움 중 하나인데, 함수는 이를 방지합니다.

    # 중복된 코드 사용 (비효율적):
    print(10 * 20)
    print(15 * 30)
    print(25 * 40)
    # 함수로 개선 (효율적):
    def multiply(a, b):
        return a * b
    
    print(multiply(10, 20))
    print(multiply(15, 30))
    print(multiply(25, 40))

     

    함수 정의하기

    파이썬에서 함수를 정의하려면 def 키워드를 사용합니다. 함수 이름, 매개변수(선택 사항), 그리고 수행할 작업을 포함합니다.

     

    기본문법

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

     

    • def: 함수를 정의할 때 사용하는 키워드.
    • 함수이름: 함수의 이름으로, 작업의 목적을 나타내야 합니다.
    • 매개변수: 함수가 입력받을 데이터 (선택 사항).
    • 실행할 코드: 함수가 호출될 때 실행될 명령들.
    • return: 함수의 실행 결과를 반환 (선택 사항).

     

    간단한 함수 정의

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

     

    매개변수가 있는 함수

    def greet(name):
        print(f"안녕하세요, {name}님!")
    
    greet("홍길동")
    # 출력: 안녕하세요, 홍길동님!

    반환값이 있는 함수

    함수는 return 키워드를 사용하여 결과값을 반환할 수 있습니다.

    def add(a, b):
        return a + b
    
    
    result = add(5, 3)
    print(result)
    # 출력: 8


    매개변수와 기본값

    def greet(name="친구"):
        print(f"안녕하세요, {name}님!")
    
    greet()
    # 출력: 안녕하세요, 친구님!
    
    greet("김철수")
    # 출력: 안녕하세요, 김철수님!

    여러 매개변수 처리

    튜플 형태로 처리
    def add_all(*args):
        return sum(args)
    
    def add_all(*args):
        return sum(args)
    
    
    딕셔너리 형태로 처리
    def print_info(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")
    
    print_info(name="홍길동", age=30, job="개발자")
    # 출력:
    # name: 홍길동
    # age: 30
    # job: 개발자

    람다 표현식이란?

    람다 표현식은 간단한 함수 정의를 한 줄로 작성할 수 있는 파이썬의 문법입니다. 일반적으로 한 번만 사용되는 간단한 함수를 정의할 때 유용합니다.


    기본 문법

    lambda 매개변수1, 매개변수2, ... : 표현식
    • lambda: 람다 표현식을 시작하는 키워드입니다.
    • 매개변수: 함수가 받을 입력값입니다. 여러 개를 콤마로 구분할 수 있습니다.
    • 표현식: 매개변수를 사용해 계산될 반환값입니다.

    람다 표현식은 return 키워드 없이 항상 결과값을 반환합니다.



    람다 표현식 vs 일반 함수

    일반 함수

    def add(a, b):
        return a + b
    
    result = add(5, 3)
    print(result)  # 출력: 8

    람다 표현식

    add = lambda a, b: a + b
    
    result = add(5, 3)
    print(result)  # 출력: 8

    람다 표현식은 def 키워드 대신 lambda를 사용하고, 반환값을 간단하게 표현할 수 있습니다.

     

     

    Python의 Built-in Functions

    Built-in Functions 1 Built-in Functions 2 Built-in Functions 3 Built-in Functions 4 Built-in Functions 5
    abs() dict() help() min() setattr()
    all() dir() hex() next() slice()
    any() divmod() id() object() sorted()
    ascii() enumerate() input() oct() staticmethod()
    bin() eval() int() open() str()
    bool() exec() isinstance() ord() sum()
    bytearray() filter() issubclass() pow() super()
    bytes() float() iter() print() tuple()
    callable() format() len() property() type()
    chr() frozenset() list() range() vars()
    classmethod() getattr() locals() repr() zip()
    compile() globals() map() reversed() __import__()
    complex() hasattr() max() round()  
    delattr() hash() memoryview() set()  

     

     

    CPU가 함수를 실행하는 방식

    CPU는 **스택(Stack)**이라는 구조를 사용하여 함수를 호출하고 실행 상태를 관리합니다. 다음은 주요 단계입니다

    1. 함수 호출 시 스택에 추가(Push)
      함수가 호출되면, 함수의 실행 정보를 스택에 저장합니다.
    2. 함수 실행
      CPU는 스택의 가장 위에 있는 함수의 명령을 실행합니다.
    3. 함수 종료 시 스택에서 제거(Pop)함수가 실행을 마치면, 스택에서 해당 함수 정보를 제거하고 호출한 위치로 돌아갑니다.

    728x90
Designed by Tistory.