Cómo declarar y usar funciones en Python

Clase 9 de 49Curso Práctico de Python: Creación de un CRUD

Resumen

Las funciones en Python son la base para escribir código claro y reutilizable. Aquí aprenderás, paso a paso y con ejemplos simples, cómo declararlas con def, elegir buenos nombres, usar parámetros posicionales y named arguments, retornar valores y aprovechar las funciones built-in para convertir tipos. Además, verás por qué Python es batteries included y cómo esto acelera tu trabajo diario.

¿Qué es una función en Python y por qué usarla?

Una función es la agrupación de enunciados con nombre que puede recibir parámetros y regresar un valor. En Python, las funciones son un elemento principal del lenguaje y permiten componer soluciones más limpias y mantenibles.

  • Nombre descriptivo: elegirlo bien es crucial para la legibilidad.
  • Parámetros: qué recibe la función para operar.
  • Valor de retorno: el resultado que se usa en el resto del programa.
  • Composición: se puede pasar el resultado de una función a otra.
  • Orden de ejecución: de arriba hacia abajo y de izquierda a derecha.

¿Cómo elegir nombres y por qué importan?

  • Nombres claros facilitan leer y mantener el código.
  • Un buen nombre explica qué hace la función sin comentarios extra.

¿Qué tipos de parámetros existen?

  • Posicionales: se pasan por orden.
  • Named arguments: permiten especificar por nombre y usar valores predefinidos.

¿Cómo se ejecutan y componen?

  • Llamas por nombre y pasas los argumentos requeridos.
  • Puedes encadenar funciones: el retorno de una alimenta a otra.

¿Qué funciones built-in y módulos ofrece Python?

Python es lenguaje con batteries included: trae una librería estándar rica en funciones y módulos listos para usar. Las funciones globales o built-in como type, int, bool, float y str son tu caja de herramientas diaria. Además, módulos como math agregan funciones matemáticas (logaritmos, trigonometría, exponenciación).

  • type: inspecciona el tipo de un valor.
  • int, bool, float, str: convierten datos entre tipos.
  • math: funciones matemáticas para cálculos comunes.

¿Cómo convertir tipos con built-ins?

Ejemplos prácticos de conversión y verificación de tipo:

# Tipo de un valor
type(3)           # <class 'int'>

# Conversión de string a entero
a = int("5")

# Representación booleana: truthy y falsy
bool(1)           # True
bool(0)           # False
bool("")          # False (string vacío)

# Conversión a flotante
a = float(3)      # 3.0

# Conversión a string
s = str(123)      # "123"
  • Valores truthy y falsy: Python convierte ciertos valores a su representación booleana.
  • Un string vacío es falsy; números distintos de cero suelen ser truthy.

¿Qué es el módulo math y para qué sirve?

  • Se importa con import math.
  • Ofrece logaritmos, funciones trigonométricas y exponenciación.
  • Útil para cálculos matemáticos sin reinventar la rueda.

¿Cómo declarar, llamar y asignar el retorno de una función?

Declaras una función con el keyword def, dos puntos y un bloque indentado. En Python, la convención es usar cuatro espacios; tu IDE puede traducir tab a cuatro espacios.

def suma_dos_numeros(x, y):
    return x + y

# Llamada y uso del valor de retorno
resultado = suma_dos_numeros(10, 15)  # 25

# type sobre la función y sobre el resultado
type(suma_dos_numeros)  # <class 'function'>
type(resultado)         # <class 'int'>

# Asignación del retorno a una variable ("=" es asignación, no igualdad)
suma_total = suma_dos_numeros(10, 15)
print(suma_total)  # 25

¿Qué debo recordar al definir funciones?

  • Usa def y termina la línea con dos puntos.
  • Indenta el bloque interno con cuatro espacios.
  • Retorna con return el valor que necesites reutilizar.

¿Cómo se conectan con el flujo del programa?

  • El intérprete corre de arriba hacia abajo y de izquierda a derecha.
  • Llama funciones cuando las necesitas y pasa los argumentos correctos.
  • Aprovecha la composición para escribir menos código repetido.

¿Con qué built-in trabajas más a diario o qué patrón de parámetros te resulta más claro: posicionales o named arguments? Comparte tu experiencia y ejemplos en los comentarios.