Introducción a la Programación
Tema 4: Fundamentos de Python · Funciones, listas y diccionarios
1. Funciones en Python
Una función es un bloque de código reutilizable que realiza una tarea específica. Se definen con la
palabra clave def:
def saludar(nombre): mensaje = 'Hola, ' + nombre + '!' return mensaje
print(saludar('Ana')) # → Hola, Ana!
1.1 Parámetros por defecto y *args
Los parámetros pueden tener valores por defecto, y se puede aceptar un número variable de
argumentos con *args y **kwargs:
def potencia(base, exponente=2): return base ** exponente potencia(3) # → 9
potencia(3, 3) # → 27
1.2 Funciones lambda
Las lambdas son funciones anónimas de una sola expresión, útiles como argumento de funciones
de orden superior:
cuadrado = lambda x: x ** 2 lista = [1, 2, 3, 4, 5] resultado =
list(map(cuadrado, lista)) # resultado = [1, 4, 9, 16, 25]
2. Listas
Una lista es una colección ordenada y mutable de elementos de cualquier tipo.
2.1 Operaciones básicas
frutas = ['manzana', 'naranja', 'kiwi'] [Link]('mango') # añadir al
final [Link](1, 'pera') # insertar en posición [Link]('kiwi')
# eliminar elemento del frutas[0] # eliminar por índice print(len(frutas)) #
longitud
2.2 List comprehensions
Forma compacta y pythónica de crear listas a partir de iterables:
# Cuadrados de números pares entre 0 y 20 pares_cuad = [x**2 for x in
range(21) if x % 2 == 0] # [0, 4, 16, 36, 64, 100, 144, 196, 256, 324, 400]
3. Diccionarios
Un diccionario almacena pares clave: valor. Las claves deben ser inmutables (strings, números,
tuplas).
alumno = { 'nombre': 'Carlos', 'edad': 21, 'notas': [8.5, 7.0, 9.2] } #
Acceso y modificación print(alumno['nombre']) # → Carlos alumno['edad'] = 22
alumno['carrera'] = 'Física' # nueva clave # Iteración for clave, valor in
[Link](): print(f'{clave}: {valor}')
4. Manejo de errores – try / except
Python usa excepciones para gestionar errores en tiempo de ejecución. El bloque try/except
permite capturarlas y reaccionar de forma controlada:
try: numero = int(input('Introduce un número: ')) resultado = 100 / numero
print(f'Resultado: {resultado}') except ValueError: print('Error: debes
introducir un número entero.') except ZeroDivisionError: print('Error: no se
puede dividir entre cero.') finally: print('Bloque finally: se ejecuta
siempre.')
5. Módulos y paquetes
Python organiza el código en módulos (archivos .py) y paquetes (directorios con __init__.py). Se
importan con import:
import math from random import randint, choice import os
print([Link](144)) # → 12.0 print(randint(1, 10)) # entero aleatorio
entre 1 y 10 print([Link]()) # directorio de trabajo actual
Funciones built-in más usadas
Función Descripción Ejemplo
len(x) Longitud de x len([1,2,3]) → 3
range(n) Secuencia 0..n-1 range(5) → 0,1,2,3,4
type(x) Tipo de x type(3.14) → float
sorted(x) Lista ordenada sorted([3,1,2]) → [1,2,3]
zip(a,b) Combina iterables zip([1,2],[a,b])
enumerate Índice + valor for i,v in enumerate(lst)