Как проверить, возвращает ли функция в Python определенное значение

PythonBeginner
Практиковаться сейчас

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, возвращает ли функция Python определенное значение. Лабораторная работа сосредоточена на понимании возвращаемых значений функций с использованием оператора return и проверке вывода.

Вы начнете с создания скрипта на Python с функцией, которая вычисляет сумму двух чисел и возвращает результат. Затем вы запустите скрипт и посмотрите на вывод. Наконец, вы измените скрипт так, чтобы он возвращал разные значения в зависимости от условия и проверите возвращаемое значение.

Понять возвращаемые значения функций

На этом этапе вы узнаете о возвращаемых значениях функций в Python. Функции - это повторно используемые блоки кода, которые выполняют определенные задачи. Часто вам нужно, чтобы функция вернула результат после завершения своей работы. Это достигается с помощью оператора return.

Начнем с создания простого скрипта на Python, который определяет функцию с возвращаемым значением.

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем calculate_sum.py в директории ~/project.

    ~/project/calculate_sum.py
    
  3. Добавьте следующий код в файл calculate_sum.py:

    def calculate_sum(x, y):
        """
        This function calculates the sum of two numbers.
        """
        sum_result = x + y
        return sum_result
    
    ## Example usage:
    num1 = 10
    num2 = 5
    result = calculate_sum(num1, num2)
    print("The sum of", num1, "and", num2, "is", result)
    

    В этом коде:

    • Мы определяем функцию с именем calculate_sum, которая принимает два аргумента, x и y.
    • Внутри функции мы вычисляем сумму x и y и сохраняем ее в переменной с именем sum_result.
    • Оператор return sum_result возвращает значение sum_result вызывающей стороне функции.
    • Затем мы вызываем функцию с num1 = 10 и num2 = 5 и сохраняем возвращаемое значение в переменной result.
    • Наконец, мы используем функцию print() для вывода результата.
  4. Теперь запустите скрипт с помощью следующей команды в терминале:

    python ~/project/calculate_sum.py
    

    Вы должны увидеть следующий вывод:

    The sum of 10 and 5 is 15
    

    Этот вывод подтверждает, что функция правильно вычислила сумму и вернула значение, которое затем было выведено на консоль.

  5. Изменим скрипт так, чтобы он возвращал другое значение в зависимости от условия. Отредактируйте файл calculate_sum.py, добавив следующее:

    def calculate_sum(x, y):
        """
        This function calculates the sum of two numbers.
        If the sum is greater than 10, it returns double the sum.
        """
        sum_result = x + y
        if sum_result > 10:
            return sum_result * 2
        else:
            return sum_result
    
    ## Example usage:
    num1 = 10
    num2 = 5
    result = calculate_sum(num1, num2)
    print("The sum of", num1, "and", num2, "is", result)
    
    num3 = 2
    num4 = 3
    result2 = calculate_sum(num3, num4)
    print("The sum of", num3, "and", num4, "is", result2)
    

    Здесь мы добавили условный оператор (if sum_result > 10:) для проверки, является ли сумма больше 10. Если это так, функция возвращает удвоенную сумму; в противном случае она возвращает исходную сумму.

  6. Запустите скрипт еще раз:

    python ~/project/calculate_sum.py
    

    Теперь вы должны увидеть следующий вывод:

    The sum of 10 and 5 is 30
    The sum of 2 and 3 is 5
    

    Первый вызов calculate_sum возвращает 30, потому что сумма (15) больше 10, поэтому она удваивается. Второй вызов возвращает 5, потому что сумма (5) не больше 10.

Вызов функции и сохранение результата

На этом этапе вы узнаете, как вызывать функцию и получать ее возвращаемое значение в Python. Получение возвращаемого значения функции позволяет использовать его в дальнейших вычислениях или операциях в рамках вашего скрипта.

Мы продолжим использовать файл calculate_sum.py из предыдущего шага. Если вы не завершили предыдущий шаг, создайте файл со следующим содержимым:

def calculate_sum(x, y):
    """
    This function calculates the sum of two numbers.
    If the sum is greater than 10, it returns double the sum.
    """
    sum_result = x + y
    if sum_result > 10:
        return sum_result * 2
    else:
        return sum_result

## Example usage:
num1 = 10
num2 = 5
result = calculate_sum(num1, num2)
print("The sum of", num1, "and", num2, "is", result)

num3 = 2
num4 = 3
result2 = calculate_sum(num3, num4)
print("The sum of", num3, "and", num4, "is", result2)

Теперь изменим скрипт, чтобы получить возвращаемое значение функции calculate_sum и выполнить с ним дополнительные операции.

  1. Откройте файл calculate_sum.py в редакторе VS Code.

  2. Измените скрипт следующим образом:

    def calculate_sum(x, y):
        """
        This function calculates the sum of two numbers.
        If the sum is greater than 10, it returns double the sum.
        """
        sum_result = x + y
        if sum_result > 10:
            return sum_result * 2
        else:
            return sum_result
    
    ## Example usage:
    num1 = 10
    num2 = 5
    result = calculate_sum(num1, num2)
    print("The sum of", num1, "and", num2, "is", result)
    
    ## Capture the output and perform an additional operation
    final_result = result + 20
    print("The final result after adding 20 is:", final_result)
    
    num3 = 2
    num4 = 3
    result2 = calculate_sum(num3, num4)
    print("The sum of", num3, "and", num4, "is", result2)
    
    ## Capture the output and perform an additional operation
    final_result2 = result2 * 2
    print("The final result after multiplying by 2 is:", final_result2)
    

    В этом измененном скрипте:

    • Мы вызываем функцию calculate_sum с аргументами num1 и num2 и сохраняем возвращаемое значение в переменной result.
    • Затем мы прибавляем 20 к значению result и сохраняем результат в переменной final_result.
    • Наконец, мы выводим значение final_result.
    • Мы также вызываем функцию calculate_sum с аргументами num3 и num4 и сохраняем возвращаемое значение в переменной result2.
    • Затем мы умножаем result2 на 2 и сохраняем результат в переменной final_result2.
    • Наконец, мы выводим значение final_result2.
  3. Запустите скрипт с помощью следующей команды:

    python ~/project/calculate_sum.py
    

    Вы должны увидеть следующий вывод:

    The sum of 10 and 5 is 30
    The final result after adding 20 is: 50
    The sum of 2 and 3 is 5
    The final result after multiplying by 2 is: 10
    

    Этот вывод показывает, что вы можете успешно вызвать функцию, получить ее возвращаемое значение и использовать это значение в последующих операциях в рамках вашего скрипта.

Сравнение результата с ожидаемым значением

На этом этапе вы узнаете, как сравнивать результат выполнения функции с ожидаемым значением. Это важная часть тестирования и проверки правильности работы ваших функций. Сравнивая фактический результат с ожидаемым, вы можете выявить и исправить ошибки в коде.

Мы продолжим использовать файл calculate_sum.py из предыдущих шагов. Если вы не завершили предыдущие шаги, создайте файл со следующим содержимым:

def calculate_sum(x, y):
    """
    This function calculates the sum of two numbers.
    If the sum is greater than 10, it returns double the sum.
    """
    sum_result = x + y
    if sum_result > 10:
        return sum_result * 2
    else:
        return sum_result

## Example usage:
num1 = 10
num2 = 5
result = calculate_sum(num1, num2)
print("The sum of", num1, "and", num2, "is", result)

## Capture the output and perform an additional operation
final_result = result + 20
print("The final result after adding 20 is:", final_result)

num3 = 2
num4 = 3
result2 = calculate_sum(num3, num4)
print("The sum of", num3, "and", num4, "is", result2)

## Capture the output and perform an additional operation
final_result2 = result2 * 2
print("The final result after multiplying by 2 is:", final_result2)

Теперь добавим функцию для сравнения результата с ожидаемым значением и вывода сообщения о том, прошел ли тест или нет.

  1. Откройте файл calculate_sum.py в редакторе VS Code.

  2. Измените скрипт следующим образом:

    def calculate_sum(x, y):
        """
        This function calculates the sum of two numbers.
        If the sum is greater than 10, it returns double the sum.
        """
        sum_result = x + y
        if sum_result > 10:
            return sum_result * 2
        else:
            return sum_result
    
    def compare_output(actual_output, expected_output):
        """
        This function compares the actual output with the expected output.
        """
        if actual_output == expected_output:
            print("Test passed!")
        else:
            print("Test failed. Expected:", expected_output, "Actual:", actual_output)
    
    ## Example usage:
    num1 = 10
    num2 = 5
    result = calculate_sum(num1, num2)
    print("The sum of", num1, "and", num2, "is", result)
    
    ## Capture the output and perform an additional operation
    final_result = result + 20
    print("The final result after adding 20 is:", final_result)
    
    ## Compare the output with the expected value
    expected_final_result = 50
    compare_output(final_result, expected_final_result)
    
    num3 = 2
    num4 = 3
    result2 = calculate_sum(num3, num4)
    print("The sum of", num3, "and", num4, "is", result2)
    
    ## Capture the output and perform an additional operation
    final_result2 = result2 * 2
    print("The final result after multiplying by 2 is:", final_result2)
    
    ## Compare the output with the expected value
    expected_final_result2 = 10
    compare_output(final_result2, expected_final_result2)
    

    В этом измененном скрипте:

    • Мы определяем функцию compare_output, которая принимает два аргумента: actual_output (фактический результат) и expected_output (ожидаемый результат).
    • Внутри функции мы сравниваем actual_output с expected_output.
    • Если они равны, выводим "Test passed!" (Тест пройден!).
    • Если они не равны, выводим "Test failed." (Тест не пройден) вместе с ожидаемым и фактическим значениями.
    • Затем вызываем функцию compare_output с аргументами final_result и expected_final_result для сравнения результата первого вычисления с ожидаемым значением 50.
    • Также вызываем функцию compare_output с аргументами final_result2 и expected_final_result2 для сравнения результата второго вычисления с ожидаемым значением 10.
  3. Запустите скрипт с помощью следующей команды:

    python ~/project/calculate_sum.py
    

    Вы должны увидеть следующий вывод:

    The sum of 10 and 5 is 30
    The final result after adding 20 is: 50
    Test passed!
    The sum of 2 and 3 is 5
    The final result after multiplying by 2 is: 10
    Test passed!
    

    Этот вывод показывает, что вы можете успешно сравнить результат выполнения функции с ожидаемым значением и определить, прошел ли тест или нет.

Резюме

В этом практическом занятии (лабораторной работе) первый шаг посвящен пониманию возвращаемых значений функций в Python. Он включает создание скрипта calculate_sum.py, в котором определяется функция calculate_sum(x, y), которая вычисляет сумму двух входных чисел и возвращает результат с использованием оператора return. Затем скрипт вызывает эту функцию с примерными значениями и выводит возвращаемую сумму в консоль, показывая, как функция может возвращать значение, которое можно сохранить и использовать в другом месте кода.

Затем исходный скрипт модифицируется так, чтобы он возвращал разные значения в зависимости от условия, что дополнительно иллюстрирует гибкость возвращаемых значений функций. Этот шаг укрепляет концепцию функций как повторно используемых блоков кода, которые могут предоставлять определенные выходные данные на основе своих входных параметров и внутренней логики.