CORE Code School

Guía básica de funciones en Python

13 minutos

Las funciones en Python son parte muy importante para un código limpio y bien desarrollado. Una función es un bloque de código reutilizable, al escribir funciones evitamos repetir varias veces el mismo "trozo" de código una y otra vez.

Definir una función

Antes de definir una función vamos a ver las partes de la misma. Empecemos con el nombre, asignaremos un nombre a una función segun la tarea que realice. Nombrar funciones no es una tarea facil, mientras estamos escribiendo el código dentro de la función puede que cambiemos de parecer sobre la acción que va a realizar. Te recomiendo que seas práctico y no dediques demasiado tiempo a pensar un nombre.

Si la función va a saludar a nuestro usuario, llamemosla saludar.

python
def saludar():
    print("Hola")

Esta de arriba es una función en python. Vamos a darle nombre a las partes que componen su sintáxis para que sepas como escribir la tuya propia.

python
def <nombre_funcion>(<parametros>):
  ...<código>...
  ...<código>...
  ...<código>...

Estas son las partes importantes de la función:

  • <nombre_funcion>: El nombre de la función con el que nos referiremos a la misma más adelante. Debe de seguir unas reglas específicas de nombrado. Por ejemplo, no es válido que el nombre empiece con un número. Puedes curiosear (las reglas básicas de nombrado aquí)[https://peps.python.org/pep-0008/#function-and-variable-names], ojo no pierdas el foco, no es importante memorizarlas.
  • <codigo>: El bloque de código. Aqui escribimos el código python que realizará la funcion al ser llamada/ejecutada.

Los parámetros de la función

Las funciones pueden o no tener parámetros y estos se usan para dar un contexto a la ejecución de la función o dicho de otra forma, para pasar información a la misma.

Veamos como quedará la función saludar pero esta vez pasamos el nombre de la persona que vamos a saludar como un parámetro.

python
# ✅ Uso correcto de los parámetros de una función
def saludaNombre(nombre):
  print("Hola", nombre)

Los parámetros permiten que al reutilizar una función esta realice la misma acción con datos diferentes. Por ejemplo, algo que no tendría sentído es tener dos funciones para saludar que realizan la misma acción:

python
# ❌ Mal

def saludaJuan():
  print("Hola Juan")

def saludaJuan():
  print("Hola Pedro")

No tiene sentido hacer esto, porque principalmente escribimos funciones para ahorrarnos código, y aqui no estamos ahorrando nada. Menos codigo que leer, es menos codigo que mantener y que leer. Los programadores somos personas, y si podemos simplificar leer menos código, será mas facil trabajar con el.

Ejecutar una función

En el ejemplo anterior hemos definido una función. Pero la definición como tal no hace nada. Lo importante de una función es su ejecución. Para indicar que queremos ejecutar una funcion ponemos lo hacemos tal que así:

python
saludar()

En el caso de que la función tuviese parámetros, pasaremos los parámetros dentro de los paréntesis.

python
saludarNombre("Marc")

Múltiples parámetros

Podemos tener más de un parametro. Este sería un ejemplo:

python
def calcula_suma(a,b,c):
  print(a+b+c)

La ejecutamos:

python
# Se imprime el valor 35
calcula_suma(5,10,20)

En este caso, la funcion imprime el valor 35 por lo que llamamos consola. En la literatura puedes encontrarte la consola nombrada como terminal, salida estándar, stdout, etc. Todos los nombres se refieren a lo mismo.

Aunque imprimir por consola nos permite ver el resultado, no es un buen uso de las funciones. Otro de los usos que permiten las funciones es la composición de las mismas. Veamos más ejemplos.

Valor de retorno

Al ejecutar una función, al igual que insertamos datos en la función mediante parámetros, podemos recibir datos a su salida usando la instrucción return.

python
def calcula_suma(a,b,c):
  return a+b+c

En este caso, si queremos imprimir el resultado deberemos hacerlo de la siguiente forma:

python
x = calcula_suma(5,10,20)
print(x)

Funciones integradas en Python

Las funciones son tan importantes para la programación que los mismos lenguajes como en este caso Python tienen funciones integradas, que todo usuario conoce y puede usar sin entender como funcionan, como por ejemplo print(), max(), len() entre otras muchas. Están creadas para generar un entorno más simple de trabajo a la hora de programar y no tener que estar creando todas nuestras funciones.

Ayuda para crear funciones

Algunas de las reglas básicas que te ayudarán a crear tus funciones:

  • Parametriza las funciones siempre que puedas. Si tienes muchos parámetros en una función es posible que necesites dividir esa función en varias.
  • Una función debe realizar una única acción. No intentes mezclar varias acciones en una misma función, separalas en varias funciones.
  • Muchas líneas de código en una función puede ser síntoma que eso deben ser varias funciones.

Curso Python y Big Data