Dominando funciones en Python: Sintaxis, tipos y ejemplos prácticos
Funciones en Python
En este artículo, aprenderá sobre funciones, qué es una función, la sintaxis, componentes y tipos de funciones. También aprenderá a crear una función en Python.
Video: Introducción a funciones en Python
¿Qué es una función en Python?
En Python, una función es un grupo de sentencias relacionadas que realiza una tarea específica.
Las funciones ayudan a dividir nuestro programa en trozos más pequeños y modulares. A medida que nuestro programa crece, las funciones lo hacen más organizado y manejable.
Además, evita repetición y hace el código reutilizable.
Sintaxis de función
def nombre_funcion(parámetros):
"""docstring"""
sentencia(s)
Lo anterior muestra una definición de función que consiste en los siguientes componentes.
- Palabra clave
defque marca el inicio del encabezado de la función. - Un nombre de función para identificarla únicamente. La nomenclatura sigue las mismas reglas de escritura de identificadores en Python.
- Parámetros (argumentos) a través de los cuales pasamos valores a una función. Son opcionales.
- Dos puntos (:) para marcar el final del encabezado de la función.
- String de documentación opcional (docstring) para describir qué hace la función.
- Una o más sentencias válidas de Python que componen el cuerpo de la función. Las sentencias deben tener el mismo nivel de indentación (usualmente 4 espacios).
- Una sentencia
returnopcional para devolver un valor desde la función.
Ejemplo de una función
def saludar(nombre):
""" Esta función saluda a la persona pasada como parámetro """
print("Hola, " + nombre + ". ¡Buenos días!")
¿Cómo llamar una función en python?
Una vez que hemos definido una función, podemos llamarla desde otra función, programa, o incluso el prompt de Python. Para llamar una función simplemente escribimos el nombre de la función con parámetros apropiados.
>>> saludar('Paul')
Hola, Paul. ¡Buenos días!
Intente ejecutar el código anterior en el programa Python con la definición de función para ver la salida.
def saludar(nombre):
""" Esta función saluda a la persona pasada como parámetro """
print("Hola, " + nombre + ". ¡Buenos días!")
saludar('Paul')
Nota: En python, la definición de función debe estar siempre presente antes de la llamada a la función. De lo contrario, obtendremos un error. Por ejemplo,
# llamada a función
saludar('Paul')
# definición de función
def saludar(nombre):
""" Esta función saluda a la persona pasada como parámetro """
print("Hola, " + nombre + ". ¡Buenos días!")
# Error: name 'saludar' is not defined
Docstrings
El primer string después del encabezado de la función se llama docstring y es abreviatura de documentation string. Se usa brevemente para explicar qué hace una función.
Aunque opcional, la documentación es una buena práctica de programación. A menos que pueda recordar qué cenó la semana pasada, siempre documente su código.
En el ejemplo anterior, tenemos un docstring inmediatamente debajo del encabezado de la función. Generalmente usamos comillas triples para que el docstring pueda extenderse a múltiples líneas. Este string está disponible para nosotros como el atributo __doc__ de la función.
Por ejemplo:
Intente ejecutar lo siguiente en el shell de Python para ver la salida.
>>> print(saludar.__doc__)
Esta función saluda a la persona pasada como parámetro
Para aprender más sobre docstrings en Python, visite Python Docstrings.
La sentencia return
La sentencia return se usa para salir de una función y volver al lugar desde donde fue llamada.
Sintaxis de return
return [lista_expresiones]
Esta sentencia puede contener una expresión que se evalúa y el valor es devuelto. Si no hay expresión en la sentencia o la sentencia return no está presente dentro de una función, entonces la función devolverá el objeto None.
Por ejemplo:
>>> print(saludar("May"))
Hola, May. ¡Buenos días!
None
Aquí, None es el valor devuelto ya que saludar() imprime directamente el nombre y no se usa sentencia return.
Ejemplo de return
def valor_absoluto(num):
"""Esta función devuelve el valor absoluto del número ingresado"""
if num >= 0:
return num
else:
return -num
print(valor_absoluto(2))
print(valor_absoluto(-4))
Salida
2 4
Cómo funcionan las funciones en Python

Ámbito y lifetime de variables
El ámbito de una variable es la porción de un programa donde la variable es reconocida. Parámetros y variables definidas dentro de una función no son visibles desde fuera de la función. Por tanto, tienen ámbito local.
El lifetime de una variable es el período durante el cual la variable existe en memoria. El lifetime de variables dentro de una función es mientras la función se ejecuta.
Son destruidas una vez que retornamos de la función. Por tanto, una función no recuerda el valor de una variable de sus llamadas anteriores.
Aquí hay un ejemplo para ilustrar el ámbito de una variable dentro de una función.
def mi_func():
x = 10
print("Valor dentro de la función:", x)
x = 20
mi_func()
print("Valor fuera de la función:", x)
Salida
Valor dentro de la función: 10 Valor fuera de la función: 20
Aquí vemos que el valor de x es 20 inicialmente. Aunque la función mi_func() cambió el valor de x a 10, no afectó el valor fuera de la función.
Esto es porque la variable x dentro de la función es diferente (local a la función) de la de fuera. Aunque tienen los mismos nombres, son dos variables diferentes con diferentes ámbitos.
Por otro lado, las variables fuera de la función son visibles desde dentro. Tienen ámbito global.
Podemos leer estos valores desde dentro de la función pero no podemos cambiar (escribir) ellos. Para modificar el valor de variables fuera de la función, deben declararse como variables globales usando la palabra clave global.
Tipos de funciones
Básicamente, podemos dividir funciones en los siguientes dos tipos:
- Funciones integradas - Funciones que vienen integradas en Python.
- Funciones definidas por el usuario - Funciones definidas por los propios usuarios.
python
- 10 funciones esenciales de Insight para optimizar la impresión FDM de Stratasys
- Dominando operadores en Python: Guía completa
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Funciones lambda en Python: Guía práctica de funciones anónimas
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
- Generadores en Python: Iteración Eficiente y Casos de Uso Avanzados
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando Decoradores en Python: Mejora Funciones con Técnicas Expertas
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Dominando las funciones lambda en Python: ejemplos prácticos y mejores prácticas
- Función round() en Python explicada con ejemplos prácticos