¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Funciones en Python: def, parámetros y return

Después de esta lección: Puedo escribir una función que recibe valores y devuelve un resultado.

Lección de 60 min6 comandosLaboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

Qué es una función en Python

Una función es un bloque de código con nombre que recibe unos valores, hace un trabajo y devuelve un resultado. Se define una vez con def y se usa tantas veces como quieras.

Una tienda calcula el IVA de miles de productos. Con una función escribe la cuenta una sola vez y la reutiliza en todos.

Al final de esta lección

Nota

Puedo escribir una función que recibe valores y devuelve un resultado.

Palabras clave

PalabraQué significaEjemplo
Funciónun bloque de código con nombre que se puede usar muchas veces
Parámetroun nombre que recibe un valor dentro de la funciónprice
Argumentoel valor que das al llamar a la función100
returnla orden que devuelve el resultado y termina la función
Ámbitola parte del programa donde existe una variable

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

def define la función y return responde

Escribe def, el nombre, los parámetros entre paréntesis y dos puntos. El cuerpo lleva sangría.

Un parámetro es el nombre que usa la función por dentro. Un argumento es el valor real que das al llamarla. return devuelve el resultado y termina la función.

Tu primera función: el IVA de un precio

Código: python
# Una función que añade el 21 % de IVA a un precio.
def with_vat(price):
    return price * 1.21

print(with_vat(100))
print(with_vat(50))
# Escribe una función half(price) que devuelva la mitad y llámala con 30.

Ejemplo resuelto: una llamada paso a paso

PasoQué pasaValor
1Llamas a with_vat(100)El argumento es 100
2El parámetro price recibe el argumentoprice = 100
3Python calcula price * 1.21121.0
4return devuelve el resultadoprint muestra 121.0

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Escribe un guion con una función

Comando
printf 'def with_vat(price):\n    return price * 1.21\n\nprint(with_vat(100))\n' > ~/iva.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejecútalo

Comando
python3 ~/iva.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que print y return hacen lo mismo. print solo escribe en pantalla y el valor se pierde. return entrega el valor a quien llamó a la función, que puede guardarlo o calcular con él.

Python ya trae muchas funciones hechas

Ya has usado print, range y type. Python trae más. len cuenta los caracteres de un texto, abs quita el signo de un número y max da el mayor de varios.

Antes de escribir una función, mira si ya existe. Y cuando la escribas, que haga una sola cosa y tenga un nombre que la diga.

Prueba tres funciones que ya existen

Comando
python3 -c "print(len('terminal'), abs(-4), max(3, 9, 5))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una variable de dentro no existe fuera

Una variable creada dentro de una función solo existe allí. Ese es su ámbito. Cuando la función termina, la variable desaparece.

Por eso una función devuelve sus resultados con return: es la única forma de sacarlos.

Escribe un guion con una variable interna

Comando
printf 'def double(x):\n    result = x * 2\n    return result\n\nprint(double(4))\nprint(result)\n' > ~/ambito.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejecútalo y lee el error

Comando
python3 ~/ambito.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una prueba pequeña comprueba tu función

Una prueba es una línea que dice qué resultado esperas. Con assert Python para el programa con un error si lo que escribes no es cierto.

Escribe las pruebas antes que la función o justo después. Prueba un caso normal y un caso extremo.

Prueba una función con assert

Código: python
def is_even(number):
    return number % 2 == 0

# assert para el programa con un error si algo no es cierto.
assert is_even(4) == True
assert is_even(7) == False
print("Las pruebas pasan")
# Añade assert is_even(10) == False y mira el error que sale.

Un assert que se cumple

Comando
python3 -c "assert 2 + 2 == 4; print('bien')"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sobre este laboratorio y su código: Laboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.