파이썬 기초 | 함수 | def ~ return | 매개변수 전달, 값 변환 | pass 키워드 | 지역변수/전역변수 | Global 예약어

    728x90

     

    1. 함수

     

    ▶ 함수의 개념

    : 무엇을 넣으면 그것이 처리되어 다시 어떤 것을 돌려주는 기능을 함

    : 함수는 매개변수(Parameter)를 입력받은 후 그 매개변수를 가공 및 처리한 후에 반환값을 돌려줌.

     

    ▶ 파이썬에서 제공하는 함수

     

    * 별도의 반환값이 없는 함수의 경우

    함수명()
    
    ex. print("hello world")

     

    * 함수에 별도의 반환값이 있으면 변수에 반환값을 받아야 함

    변수이름 = 함수이름()
    
    ex. num = int("1234")
        print(num)

     

    * 사용자 정의 함수 

    (예시)

    # 사용자정의함수 미사용
    
    print("A님, 두 숫자를 입력하세요")
    num1 = int(input("정수1 => "))
    num2 = int(input("정수2 => "))
    hap = num1 + num2
    print("결과: ", hap)
    
    print("B님, 두 숫자를 입력하세요")
    num1 = int(input("정수1 => "))
    num2 = int(input("정수2 => "))
    hap = num1 + num2
    print("결과: ", hap)
    
    print("C님, 두 숫자를 입력하세요")
    num1 = int(input("정수1 => "))
    num2 = int(input("정수2 => "))
    hap = num1 + num2
    print("결과: ", hap)

    # 사용자정의함수 사용
    
    def hapFunc() :
        num1 = int(input("정수1 => "))
        num2 = int(input("정수2 => "))
        return num1 + num2
    
    print("A님, 두 숫자를 입력하세요")
    hap = hapFunc()
    print("결과: ", hap)
    
    print("B님, 두 숫자를 입력하세요")
    hap = hapFunc()
    print("결과: ", hap)
    
    print("C님, 두 숫자를 입력하세요")
    hap = hapFunc()
    print("결과: ", hap)

     

     

    ▶ 파이썬에서 제공하는 함수

    * plus() 함수

    : 두 정수를 입력받아 두 정수의 합계를 반환

    # 함수 정의 부분
    def plus(v1, v2) :
        result = 0
        result = v1 + v2
        return result
    
    # 전역변수 선언 부분
    hap = 0
    
    # 메인코드 부분
    hap = plus(100,200)
    print("100과 200의 plus() 함수 결과는 ", hap)

     

     

    [연습문제]

     

    * 계산을 위한 기호 +, -, *, / 를 입력한 뒤, 두 수를 입력하면 선택한 계산이 되는 계산기 만들기(함수 이용)

    def calculate(str, a, b) :
        if str == '+' :
            result = a + b
            return result
        elif str == '-' :
            if a >= b :
                result = a - b
                return result
            elif b > a :
                result = b - a
                return result
        elif str == "/" :
            if a >= b :
                result = a / b
                return result
            elif b > a :
                result = b / a
                return reuslt
        elif str == "*" :
             result = a * b
             return result
        else :
            print("정확한 숫자를 입력하세요.")

    # 함수 정의 부분
    def cal(v1,v2,op) :
        result = 0
        if op == "+" :
            result = v1 + v2
        elif op == "*" :
            result = v1 * v2
        elif op == "-" :
            if v1 >= v2 :
                result = v1 - v2
            else :
                result = v2 - v1
        elif op == "/" :
            if v1 >= v2 :
                result = v1 / v2
            else :
                result = v2 / v1
        else : 
            print("정확한 숫자를 입력하세요")
        return result
    
    # 전역변수 선언 부분
    res = 0
    var1, var2, oper = 0,0,""
    
    # 메인 코드 부분
    oper = input("계산 입력(+,-,*,/) : ")
    var1 = int(input("첫 번째 숫자 입력: "))
    var2 = int(input("두 번째 숫자 입력: "))
    
    res = cal(var1, var2, oper)
    print(f"## 계산기: {var1} {oper} {var2} =", res)

     


    2. 함수의 매개변수 전달과 값 변환

     

    ▶ 함수의 매개변수 전달

     

    [매개변수 전달 방법]

     

    1) 매개변수의 개수 정해놓기

     

    * 숫자 2개의 합과 3개의 합을 구하는 함수

    def para2_func(v1, v2) :
        result = 0
        result = v1 + v2
        return result
    
    def para3_func(v1,v2,v3) :
        result = 0
        result = v1 + v2 + v3
        return result
    
    hap = 0
    
    hap = para2_func(10,20)
    print("매개변수 2개 함수 호출 결과 =>", hap)
    hap = para3_func(10,20,30)
    print("매개변수 3개 함수 호출 결과 =>", hap)

     

     

    2) 매개변수에 기본값을 설정해놓기

    # 함수 정의 부분
    def para_func(v1, v2, v3=0) :
        result = 0
        result = v1 + v2 + v3
        return result
    
    # 전역변수 선언 부분
    hap = 0
    
    # 메인 코드 부분
    hap = para_func(10,20)
    print("매개변수 2개 함수 호출 결과 => ", hap)
    hap = para_func(10,20,30)
    print("매개변수 3개 함수 호출 결과 => ", hap)

     

    ▶ 값 반환하기

     

    [반환값이 없는 함수]

    : 함수를 실행한 결과, 돌려줄 것이 없는 경우에는 return문을 생략함.

    : 반환값 없이 함수를 마치면 아무것도 반환하지 않고 함수가 종료됨.

     

    [반환값이 1개 있는 함수]

    : 함수가 작동한 후에 반환할 값이 있으면 'return 반환값' 형식으로 표현함.

     

    [반환값이 2개 있는 함수]

    : 반환할 값이 2개라면 return 반환값1, 반환값2 형식으로 표현

     

    [pass 키워드]

    : 함수의 이름과 형태만 만들어놓고, 내부는 나중에 코딩하고 싶은 경우에 사용

    : 함수 뿐 아니라 if문이나 반복문에서도 아무것도 안 하는 코드로 채울 때도 사용함.

     

    ><

     


    3. 지역변수와 전역변수

     

    ▶ 유효범위, 지역변수, 전역변수 의미

     

    * 유효범위 : 자기가 활동할 수 있는 범위

    * 지역변수 : 한정된 지역(local)에서만 사용되는 변수

    * 전역변수 : 프로그램 전체(global)에서 사용되는 변수

    (→ 지역변수가 전역변수보다 우선시 됨)

     

    [지역변수와 전역변수의 이름이 같은 경우]

    # 함수 정의 부분
    def func1() :
        a = 10   # 지역변수
        print("func1()에서 a의 값", a)
    
    def func2() :
         print("func2()에서 a의 값", a)
    
    # 전역변수 선언 부분
    a = 20
    
    # 메인 코드 부분
    func1()
    func2()

     

    ▶ Global 예약어

    : 함수 안에서 사용되는 변수. 무조건 전역변수로 사용하고 싶은 경우에 사용.

    : global 예약어와 함께 나오는 변수명은 무조건 전역변수임

    : 지역변수와 전역변수의 이름이 같은 경우

    728x90

    댓글