---
title: Curso de Python &#8211; 5. Funciones
url: https://jarroba.com/curso-de-python-5-funciones/
author: Ramón Invarato
date: 2020-07-17
modified: 2026-10-21
language: es
license: CC BY-NC-SA 3.0 (https://creativecommons.org/licenses/by-nc-sa/3.0/) — attribution: "Curso de Python &#8211; 5. Funciones", Ramón Invarato, jarroba.com
categories: Lenguajes de Programación
tags: python
series: Curso de Python (part 6 of 9)
repository: https://github.com/jarroba/Curso-Python/tree/master/Ejercicios
---

# Curso de Python &#8211; 5. Funciones

> Aprende a definir funciones en Python: argumentos y parámetros, alcance de variables, documentación del código y funciones lambda, con un ejercicio de cajero automático.

Agrupar líneas de código para reutilizarlas varias veces, o para documentarlas en funcionalidades concretas cuyo nombre nos resume lo que hace el código sin tener que leerlo completamente.

 

 

## Teoría

 Saltar al contenido del PDF

 

[**Descargar Teoría**](https://github.com/jarroba/Curso-Python/raw/master/Teoria/5-Funciones.pdf)

 

 

## 5.1- Función

 

Programar código no secuencial, es decir, programar trozos de código que se ejecutarán en otro momento con la programación funcional.

 

 

Nota

 

### Para saber más en las siguientes entradas:

 

- [ReturnS en Python](https://jarroba.com/returns-en-python/)

 

 

## 5.2- Función – Argumentos y Parámetros

 

Una función se puede comportar como una caja negra, con unas entradas y unas salidas; algo así como un motor, al que le tiene que entrar cierta cantidad de gasolina y sale movimiento. Los argumentos y parámetros serán la entrada de datos a la función.

 

 

Nota

 

### Para saber más en las siguientes entradas:

 

- [*args y **kwargs – python, con ejemplos](https://jarroba.com/args-kwargs-python-ejemplos/)

 

 

## 5.3- Función – Alcance

 

El alcance de una función es un poco peculiar, pues el código no se ejecuta secuencialmente y en donde está escrito no se ejecutará de inmediato, sino más tarde. Esto quiere decir que los valores de las variables en un punto no serán los mismos que cuando se llame a la función.

 

 

 

## 5.4- Documentar Funciones

 

La función en sí misma ya es una forma de documentar código, pero se puede ir a más; dicho de otro modo, podremos documentar nuestro código profesionalmente.

 

 

 

## 5.5- Función Lambda

 

Las funciones tienen un nombre y se pueden ejecutar múltiples veces. No obstante, sobre todo en la programación por eventos, nos interesará que la función se ejecute una única vez y no nos interesará ni ponerle el nombre; esto lo conseguimos con Lambda.

 

 

 

## Ejercicios

 

### Ejercicio [5.1-cajero_automatico.py](https://github.com/jarroba/Curso-Python/blob/master/Ejercicios/5.1-cajero_automatico.py)

 

Vamos a crear un sistema de registros de un cajero automático.

 

Crearemos un método para imprimir cada una de las líneas que tenga de parámetro «fecha» y «concepto» como obligatorios, y «cantidad» será opcional, si no se pasa será 0 y «movimiento» si no se pasa nada será «Domiciliación»; además, si la «cantidad» es negativa hay que marcar dicha línea de algún modo (por ejemplo, poniendo al final la palabra «Déficit»).

 

La entrada de los datos tiene que ser directamente llamando al método y pasándole diferentes valores con las diferentes combinaciones para los argumentos que son opcionales.

 

![Captura de consola con tres movimientos bancarios con fecha; el de -50€ (pagar concierto) está marcado como Déficit](https://jarroba.com/wp-content/uploads/2020/07/Ejercicio-cajero-automático-www.jarroba.png)

## Serie: Curso de Python

1. [Curso de Python &#8211; 0. Entorno de desarrollo para Python](https://jarroba.com/curso-de-python-0-entorno-de-desarrollo-para-python.md)
2. [Curso de Python &#8211; 1. Introducción](https://jarroba.com/curso-de-python-1-introduccion.md)
3. [Curso de Python &#8211; 2. Tipos básicos de datos](https://jarroba.com/curso-de-python-2-tipos-basicos-de-datos.md)
4. [Curso de Python &#8211; 3. Colecciones](https://jarroba.com/curso-de-python-3-colecciones.md)
5. [Curso de Python &#8211; 4. Estructuras de control de flujo](https://jarroba.com/curso-de-python-4-estructuras-de-control-de-flujo.md)
6. [Curso de Python &#8211; 5. Funciones](https://jarroba.com/curso-de-python-5-funciones.md)
7. [Curso de Python &#8211; 6. Bibliotecas/Paquetes](https://jarroba.com/curso-de-python-6-bilbiotecas-paquetes.md)
8. [Curso de Python &#8211; 7. Excepciones](https://jarroba.com/curso-de-python-7-excepciones.md)
9. [Curso de Python &#8211; 8. Ficheros](https://jarroba.com/curso-de-python-8-ficheros.md)

