Python 에서 함수가 None 을 반환하는지 확인하는 방법

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 함수가 None을 반환하는지 확인하는 방법을 배우게 됩니다. 이 랩은 두 숫자의 합을 반환하는 함수가 있는 간단한 Python 스크립트를 생성하여 함수 반환 값을 이해하도록 안내합니다. 그런 다음 스크립트를 실행하고 출력을 관찰합니다.

이 랩은 함수를 수정하여 다른 데이터 유형을 반환하도록 하고, 궁극적으로 함수가 명시적으로 값을 반환하지 않아 None이 반환되는 시나리오에 중점을 둡니다. 함수의 반환 값을 캡처한 다음 is 연산자를 사용하여 해당 값이 None인지 확인하는 방법을 배우게 됩니다.

함수 반환 값에 대해 알아보기

이 단계에서는 Python 에서 함수 반환 값에 대해 배우게 됩니다. 함수는 특정 작업을 수행하는 재사용 가능한 코드 블록입니다. 종종 함수가 작업을 완료한 후 결과를 반환하기를 원할 것입니다. 이 결과를 반환 값이라고 합니다.

반환 값이 있는 함수를 정의하는 간단한 Python 스크립트를 생성하는 것으로 시작해 보겠습니다.

  1. LabEx 환경에서 VS Code 편집기를 엽니다.

  2. ~/project 디렉토리에 calculate.py라는 새 파일을 만듭니다.

    ~/project/calculate.py
    
  3. calculate.py에 다음 코드를 추가합니다.

    def add(x, y):
        """This function adds two numbers and returns the result."""
        sum = x + y
        return sum
    
    ## Call the function and print the returned value
    result = add(5, 3)
    print(result)
    

    이 코드에서:

    • 두 개의 인자 xy를 받는 add라는 함수를 정의합니다.
    • 함수 내부에서 xy의 합을 계산하여 sum이라는 변수에 저장합니다.
    • return sum 문은 함수가 호출될 때 sum의 값을 반환하도록 지정합니다.
    • 함수 외부에서 인자 53으로 add 함수를 호출하고 반환된 값을 result라는 변수에 저장합니다.
    • 마지막으로 print() 함수를 사용하여 result의 값을 표시합니다.
  4. calculate.py 파일을 저장합니다.

  5. WebIDE 에서 터미널을 엽니다.

  6. 다음 명령을 사용하여 스크립트를 실행합니다.

    python calculate.py
    

    다음 출력을 볼 수 있습니다.

    8
    

    이 출력은 add 함수가 5 와 3 의 합을 올바르게 계산하고 값 8 을 반환했으며, 이 값이 콘솔에 출력되었음을 보여줍니다.

이제 문자열과 같이 다른 유형의 값을 반환하도록 함수를 수정해 보겠습니다.

  1. VS Code 에서 calculate.py 파일을 엽니다.

  2. 코드를 다음과 같이 수정합니다.

    def greet(name):
        """This function returns a greeting message."""
        message = "Hello, " + name + "!"
        return message
    
    ## Call the function and print the returned value
    greeting = greet("LabEx User")
    print(greeting)
    

    이 코드에서:

    • 하나의 인자 name을 받는 greet라는 함수를 정의합니다.
    • 함수 내부에서 문자열 "Hello, ", name 인자의 값, 그리고 문자열 "!"를 연결하여 인사 메시지를 만듭니다.
    • return message 문은 함수가 인사 메시지를 반환하도록 지정합니다.
    • 함수 외부에서 인자 "LabEx User"greet 함수를 호출하고 반환된 값을 greeting이라는 변수에 저장합니다.
    • 마지막으로 print() 함수를 사용하여 greeting의 값을 표시합니다.
  3. calculate.py 파일을 저장합니다.

  4. 다음 명령을 사용하여 스크립트를 다시 실행합니다.

    python calculate.py
    

    다음 출력을 볼 수 있습니다.

    Hello, LabEx User!
    

    이 출력은 greet 함수가 인사 메시지를 올바르게 생성하고 반환했으며, 이 값이 콘솔에 출력되었음을 보여줍니다.

반환 값 캡처

이전 단계에서 값을 반환하는 함수를 정의하는 방법을 배웠습니다. 이제 프로그램에서 이러한 반환 값을 캡처하고 사용하는 방법을 배우게 됩니다. 반환 값을 캡처한다는 것은 함수에서 반환된 값을 변수에 저장하여 나중에 사용할 수 있도록 하는 것을 의미합니다.

이전 단계에서 생성한 calculate.py 파일을 계속 사용해 보겠습니다. 스크립트를 수정하여 더 많은 작업을 수행하고 반환 값을 캡처합니다.

  1. VS Code 에서 calculate.py 파일을 엽니다.

  2. 코드를 다음과 같이 수정합니다.

    def add(x, y):
        """This function adds two numbers and returns the result."""
        sum = x + y
        return sum
    
    def subtract(x, y):
        """This function subtracts two numbers and returns the result."""
        difference = x - y
        return difference
    
    ## Call the functions and capture the return values
    num1 = 10
    num2 = 5
    
    sum_result = add(num1, num2)
    print("The sum of", num1, "and", num2, "is:", sum_result)
    
    difference_result = subtract(num1, num2)
    print("The difference between", num1, "and", num2, "is:", difference_result)
    

    이 코드에서:

    • addsubtract의 두 함수를 정의합니다.
    • 인자 num1num2add 함수를 호출하고 반환된 값을 sum_result라는 변수에 저장합니다.
    • 인자 num1num2subtract 함수를 호출하고 반환된 값을 difference_result라는 변수에 저장합니다.
    • print() 함수를 사용하여 sum_resultdifference_result의 값을 설명 텍스트와 함께 표시합니다.
  3. calculate.py 파일을 저장합니다.

  4. 다음 명령을 사용하여 스크립트를 실행합니다.

    python calculate.py
    

    다음 출력을 볼 수 있습니다.

    The sum of 10 and 5 is: 15
    The difference between 10 and 5 is: 5
    

    이 출력은 addsubtract 함수의 반환 값을 성공적으로 캡처하여 프로그램에서 사용했음을 보여줍니다.

이제 한 함수의 반환 값을 다른 함수의 인수로 사용하는 더 복잡한 예제를 만들어 보겠습니다.

  1. VS Code 에서 calculate.py 파일을 엽니다.

  2. 코드를 다음과 같이 수정합니다.

    def add(x, y):
        """This function adds two numbers and returns the result."""
        sum = x + y
        return sum
    
    def multiply(x, y):
        """This function multiplies two numbers and returns the result."""
        product = x * y
        return product
    
    ## Call the functions and capture the return values
    num1 = 5
    num2 = 3
    
    sum_result = add(num1, num2)
    product_result = multiply(sum_result, 2)  ## Use the return value of add as an argument to multiply
    
    print("The sum of", num1, "and", num2, "is:", sum_result)
    print("The product of the sum and 2 is:", product_result)
    

    이 코드에서:

    • addmultiply의 두 함수를 정의합니다.
    • 인자 num1num2add 함수를 호출하고 반환된 값을 sum_result라는 변수에 저장합니다.
    • 인자 sum_result2multiply 함수를 호출합니다. 이는 add의 반환 값을 multiply에 대한 입력으로 사용할 수 있음을 보여줍니다. 반환된 값을 product_result라는 변수에 저장합니다.
    • print() 함수를 사용하여 sum_resultproduct_result의 값을 설명 텍스트와 함께 표시합니다.
  3. calculate.py 파일을 저장합니다.

  4. 다음 명령을 사용하여 스크립트를 실행합니다.

    python calculate.py
    

    다음 출력을 볼 수 있습니다.

    The sum of 5 and 3 is: 8
    The product of the sum and 2 is: 16
    

    이 출력은 한 함수의 반환 값을 다른 함수의 인수로 성공적으로 사용하여 함수 반환 값의 강력함과 유연성을 보여줍니다.

반환 값이 None 인지 확인

경우에 따라 함수가 항상 의미 있는 값을 반환하지 않을 수 있습니다. 이러한 상황에서는 None을 반환할 수 있습니다. None은 Python 에서 값의 부재를 나타내는 특수한 값입니다. 오류를 방지하기 위해 함수가 반환 값을 사용하기 전에 None을 반환하는지 확인하는 것이 중요합니다.

calculate.py 파일을 수정하여 None을 반환할 수 있는 함수를 포함해 보겠습니다.

  1. VS Code 에서 calculate.py 파일을 엽니다.

  2. 코드를 다음과 같이 수정합니다.

    def divide(x, y):
        """This function divides x by y and returns the result.
        If y is 0, it returns None to avoid division by zero errors.
        """
        if y == 0:
            return None
        else:
            return x / y
    
    ## Call the function and check if the return value is None
    numerator = 10
    denominator = 0
    
    result = divide(numerator, denominator)
    
    if result is None:
        print("Cannot divide by zero!")
    else:
        print("The result of", numerator, "/", denominator, "is:", result)
    
    denominator = 2
    result = divide(numerator, denominator)
    
    if result is None:
        print("Cannot divide by zero!")
    else:
        print("The result of", numerator, "/", denominator, "is:", result)
    

    이 코드에서:

    • 두 개의 인자 xy를 받는 divide라는 함수를 정의합니다.
    • 함수 내부에서 y가 0 과 같은지 확인합니다. 그렇다면 0 으로 나누기 오류를 방지하기 위해 None을 반환합니다.
    • y가 0 이 아니면 x / y의 결과를 계산하여 반환합니다.
    • 함수 외부에서 분모가 0 인 divide 함수를 호출합니다.
    • is 연산자를 사용하여 반환된 값이 None인지 확인합니다.
    • 반환된 값이 None이면 오류 메시지를 출력합니다.
    • 그렇지 않으면 나눗셈의 결과를 출력합니다.
    • 그런 다음 유효한 분모로 divide 함수를 다시 호출하고 결과를 출력합니다.
  3. calculate.py 파일을 저장합니다.

  4. 다음 명령을 사용하여 스크립트를 실행합니다.

    python calculate.py
    

    다음 출력을 볼 수 있습니다.

    Cannot divide by zero!
    The result of 10 / 2 is: 5.0
    

    이 출력은 프로그램이 분모가 0 인 경우를 올바르게 처리하고 적절한 오류 메시지를 출력했음을 보여줍니다. 또한 프로그램이 분모가 0 이 아닌 경우 결과를 올바르게 계산하고 출력했음을 보여줍니다.

값이 None인지 확인하기 위해 is 연산자를 사용하는 것이 중요합니다. 왜냐하면 None은 Python 에서 싱글톤 객체이기 때문입니다. 즉, 전체 프로그램에서 None의 인스턴스는 하나뿐입니다. == 연산자를 사용하면 객체 자체의 값이 아닌 객체의 값을 비교하기 때문에 항상 올바르게 작동하지 않을 수 있습니다.

요약

이 랩에서는 Python 의 함수 반환 값에 대해 배웠습니다. 두 개의 인수를 받아 합계를 계산하고 결과를 반환하는 add라는 함수를 만들었습니다. 그런 다음 함수를 호출하고 반환된 값을 변수에 저장한 후 콘솔에 출력했습니다.

이 랩은 함수가 정수와 같은 다양한 유형의 값을 반환할 수 있음을 보여주었습니다. 이를 통해 함수는 계산 또는 연산을 수행하고 결과를 호출 코드에 다시 제공하여 추가로 사용할 수 있습니다.