ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] 함수
    python 2025. 5. 26. 10:42

    함수

    Python에서 함수(Function)란, 어떤 작업을 수행하는 코드 블록에 이름을 붙인 것입니다. 특정 기능을 하나로 묶어서 필요할 때마다 재사용할 수 있게 만들어줍니다.

     

    🔍 함수의 정의

    함수는 입력(인자)을 받아 처리하고, 결과(출력)를 반환하는 구조입니다.

     

    🧱 함수의 구성 요소

    def 함수를 정의할 때 사용하는 키워드
    함수 이름 함수의 이름 (예: add, greet)
    매개변수(Parameter) 함수가 입력으로 받을 변수
    본문 함수가 수행할 코드
    return 결과를 반환 (필수는 아님)

     

    🧪 예시

    def add(a, b):        # a, b는 매개변수
        result = a + b
        return result     # 결과 반환
    
    sum = add(3, 5)       # 함수 호출 (3, 5는 인자)
    print(sum)            # 출력: 8

     

    ✅ 함수의 장점

     

    • 코드 재사용: 같은 코드를 반복하지 않고 호출만 하면 됨
    • 가독성 향상: 기능별로 코드를 분리해 읽기 쉬움
    • 유지보수 용이: 특정 기능만 수정하면 전체 코드가 자동으로 반영됨
    • 모듈화 가능: 큰 프로그램을 작게 나눌 수 있음

    📚 함수의 종류

    사용자 정의 함수 직접 만든 함수 def my_function():
    내장 함수 파이썬에 기본으로 포함 print(), len(), sum()
    익명 함수 lambda로 정의 lambda x: x*2

     

    실습

    def open_account():
        print("새로운 계좌가 생성되었습니다.")
        
    def deposit(balance, money):
        print("입금이 완료되었습니다. 잔액은 {0}원 입니다.".format(balance + money))
        return balance + money
        
    balance = 0 # 잔액
    balance = deposit(balance, 1000)

     

     

    입금이 완료되었습니다. 잔액은 1000원 입니다.

     

    def withdraw(balance, money): #출금
        if balance >= money:
            print("출금이 완료되었습니다. 잔액은 {0}원 입니다.".format(balance - money))
            return balance - money
        else:
            print("출금이 완료되지 않았습니다. 잔액은 {0}원 입니다.".format(balance))
            return balance
            
     balance = 1000 # 잔액
     balance = withdraw(balance, 500)

     

    출금이 완료되었습니다. 잔액은 500원 입니다.

     

    def withdraw(balance, money): #출금
        if balance >= money:
            print("출금이 완료되었습니다. 잔액은 {0}원 입니다.".format(balance - money))
            return balance - money
        else:
            print("출금이 완료되지 않았습니다. 잔액은 {0}원 입니다.".format(balance))
            return balance
            
    balance = 0 # 잔액
    balance = withdraw(balance, 500)

     

    출금이 완료되지 않았습니다. 잔액은 0원 입니다.

     

    def deposit(balance, money):
        print("입금이 완료되었습니다. 잔액은 {0}원 입니다.".format(balance + money))
        return balance + money
        
    def withdraw_night(balance, money): # 저녁에 출금
        commission = 100 # 수수료 100원
        return commission, balance - money - commission
        
    balance = 0 # 잔액
    balance = deposit(balance, 1000)
    
    commission, balance = withdraw_night(balance, 500)
    print("수수료 {0}원 이며, 잔액은 {1}원 입니다.".format(commission, balance))

     

    입금이 완료되었습니다. 잔액은 1000원 입니다.
    수수료 100원 이며, 잔액은 400원 입니다.

     

    실습2

    def profile(name, age, main_lang):
        print("이름 : {0}\t 나이: {1}\t 주 사용 언어 : {2}" \
            .format(name, age, main_lang))
    
    profile("유재석", 20, "파이썬")
    profile("김태호", 25, "자바")

     

    이름 : 유재석    나이: 20        주 사용 언어 : 파이썬
    이름 : 김태호    나이: 25        주 사용 언어 : 자바

     

    # 기본값 지정
    
    def profile(name, age=17, main_lang="파이썬"):
        print("이름 : {0}\t 나이: {1}\t 주 사용 언어 : {2}" \
            .format(name, age, main_lang))
            
    profile("유재석")
    profile("김태호")

     

    이름 : 유재석    나이: 20        주 사용 언어 : 파이썬
    이름 : 김태호    나이: 25        주 사용 언어 : 자바

     

    def profile(name, age, main_lang):
        print(name, age, main_lang)
        
    profile(name="유재석", main_lang="파이썬", age=20)
    profile(main_lang="자바", age=25, name="김태호")

     

    유재석 20 파이썬
    김태호 25 자바

     

    실습3

     

    Python에서 가변인자(Variable-length Arguments)는 함수에 정해지지 않은 개수의 인자를 받을 수 있게 해주는 기능입니다.

    인자의 개수가 유동적일 때 유용합니다.

     

    def profile(name, age, *language):
        print("이름 : {0}\t나이: {1}\t".format(name, age), end=" ")
        for lang in language:
            print(lang, end="")
        print()
    
    profile("유재석", 20, "Python", "Java", "C", "C++", "C#")
    profile("김태호", 25, "Kotlin", "Swift")

    'python' 카테고리의 다른 글

    [python] 표준 입출력  (0) 2025.05.27
    [python] 지역변수와 전역변수  (0) 2025.05.26
    [python] continue와 break  (0) 2025.05.23
    [python] while  (0) 2025.05.23
    [python] for (반복문)  (0) 2025.05.23
Designed by Tistory.