Cómo comprobar si una función devuelve un valor específico en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo comprobar si una función de Python devuelve un valor específico. El laboratorio se centra en comprender los retornos de función utilizando la declaración return y verificar la salida.

Comenzarás creando un script de Python con una función que calcule la suma de dos números y devuelva el resultado. Luego ejecutarás el script y observarás la salida. Finalmente, modificarás el script para devolver diferentes valores según una condición y verificar el valor devuelto.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") subgraph Lab Skills python/conditional_statements -.-> lab-559521{{"Cómo comprobar si una función devuelve un valor específico en Python"}} python/function_definition -.-> lab-559521{{"Cómo comprobar si una función devuelve un valor específico en Python"}} python/arguments_return -.-> lab-559521{{"Cómo comprobar si una función devuelve un valor específico en Python"}} end

Comprender los retornos de función

En este paso, aprenderás sobre los retornos de función en Python. Las funciones son bloques de código reutilizables que realizan tareas específicas. A menudo, querrás que una función te devuelva un resultado después de terminar su trabajo. Esto se hace utilizando la declaración return.

Comencemos creando un simple script de Python que defina una función con un valor de retorno.

  1. Abre el editor de VS Code en el entorno de LabEx.

  2. Crea un nuevo archivo llamado calculate_sum.py en el directorio ~/project.

    ~/project/calculate_sum.py
  3. Agrega el siguiente código al archivo 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)

    En este código:

    • Definimos una función llamada calculate_sum que toma dos argumentos, x e y.
    • Dentro de la función, calculamos la suma de x e y y la almacenamos en una variable llamada sum_result.
    • La declaración return sum_result envía el valor de sum_result de vuelta al llamador de la función.
    • Luego llamamos a la función con num1 = 10 y num2 = 5, y almacenamos el valor devuelto en la variable result.
    • Finalmente, usamos la función print() para mostrar el resultado.
  4. Ahora, ejecuta el script utilizando el siguiente comando en la terminal:

    python ~/project/calculate_sum.py

    Deberías ver la siguiente salida:

    The sum of 10 and 5 is 15

    Esta salida confirma que la función calculó correctamente la suma y devolvió el valor, que luego se imprimió en la consola.

  5. Modifiquemos el script para devolver un valor diferente según una condición. Edita el archivo calculate_sum.py para incluir lo siguiente:

    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)

    Aquí, hemos agregado una declaración condicional (if sum_result > 10:) para comprobar si la suma es mayor que 10. Si lo es, la función devuelve el doble de la suma; de lo contrario, devuelve la suma original.

  6. Ejecuta el script nuevamente:

    python ~/project/calculate_sum.py

    Ahora deberías ver la siguiente salida:

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

    La primera llamada a calculate_sum devuelve 30 porque la suma (15) es mayor que 10, por lo que se duplica. La segunda llamada devuelve 5 porque la suma (5) no es mayor que 10.

Llamar a una función y capturar su salida

En este paso, aprenderás cómo llamar a una función y capturar su salida en Python. Capturar la salida de una función te permite utilizar el valor devuelto en cálculos o operaciones adicionales dentro de tu script.

Seguiremos utilizando el archivo calculate_sum.py del paso anterior. Si no has completado el paso anterior, por favor crea el archivo con el siguiente contenido:

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)

Ahora, modifiquemos el script para capturar la salida de la función calculate_sum y realizar operaciones adicionales con ella.

  1. Abre el archivo calculate_sum.py en el editor de VS Code.

  2. Modifica el script de la siguiente manera:

    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)

    En este script modificado:

    • Llamamos a la función calculate_sum con num1 y num2, y almacenamos el valor devuelto en la variable result.
    • Luego sumamos 20 al result y lo almacenamos en final_result.
    • Finalmente, imprimimos el valor de final_result.
    • También llamamos a la función calculate_sum con num3 y num4, y almacenamos el valor devuelto en la variable result2.
    • Luego multiplicamos result2 por 2 y lo almacenamos en final_result2.
    • Finalmente, imprimimos el valor de final_result2.
  3. Ejecuta el script utilizando el siguiente comando:

    python ~/project/calculate_sum.py

    Deberías ver la siguiente salida:

    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

    Esta salida demuestra que puedes llamar exitosamente a una función, capturar su valor devuelto y utilizar ese valor en operaciones posteriores dentro de tu script.

Comparar la salida con un valor esperado

En este paso, aprenderás cómo comparar la salida de una función con un valor esperado. Esto es una parte crucial de la prueba y garantía de que tus funciones estén funcionando correctamente. Al comparar la salida real con la salida esperada, puedes identificar y corregir cualquier error en tu código.

Seguiremos utilizando el archivo calculate_sum.py de los pasos anteriores. Si no has completado los pasos anteriores, por favor crea el archivo con el siguiente contenido:

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)

Ahora, agreguemos una función para comparar la salida con un valor esperado e imprimir un mensaje que indique si la prueba pasó o falló.

  1. Abre el archivo calculate_sum.py en el editor de VS Code.

  2. Modifica el script de la siguiente manera:

    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)

    En este script modificado:

    • Definimos una función llamada compare_output que toma dos argumentos: actual_output y expected_output.
    • Dentro de la función, comparamos el actual_output con el expected_output.
    • Si son iguales, imprimimos "Test passed!".
    • Si no son iguales, imprimimos "Test failed." junto con los valores esperado y real.
    • Luego llamamos a la función compare_output con final_result y expected_final_result para comparar la salida del primer cálculo con el valor esperado de 50.
    • También llamamos a la función compare_output con final_result2 y expected_final_result2 para comparar la salida del segundo cálculo con el valor esperado de 10.
  3. Ejecuta el script utilizando el siguiente comando:

    python ~/project/calculate_sum.py

    Deberías ver la siguiente salida:

    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!

    Esta salida demuestra que puedes comparar exitosamente la salida de una función con un valor esperado y determinar si la prueba pasó o falló.

Resumen

En este laboratorio, el primer paso se centra en comprender los retornos de funciones en Python. Implica crear un script calculate_sum.py que define una función, calculate_sum(x, y), la cual calcula la suma de dos números de entrada y devuelve el resultado utilizando la declaración return. Luego, el script llama a esta función con valores de muestra e imprime la suma devuelta en la consola, demostrando cómo una función puede devolver un valor que se puede capturar y utilizar en otras partes del código.

Luego, se modifica el script inicial para devolver diferentes valores según una condición, lo que ilustra aún más la flexibilidad de los retornos de funciones. Este paso refuerza el concepto de las funciones como bloques de código reutilizables que pueden proporcionar salidas específicas en función de sus entradas y lógica interna.