← Volver

Ejercicios de Python — Todos los Niveles

Nivel Básico

1) Suma de dos números

Pedir al usuario dos números y mostrar su suma.

a = int(input("Ingrese un número: "))
b = int(input("Ingrese otro número: "))
print("Resultado:", a + b)

2) Clasificar edad

Pedir la edad y decir si es menor, adulto o adulto mayor.

edad = int(input("Edad: "))

if edad < 18:
    print("Menor de edad")
elif edad < 65:
    print("Adulto")
else:
    print("Adulto mayor")

3) Contar vocales

texto = input("Texto: ").lower()
vocales = "aeiou"
contador = sum(1 for c in texto if c in vocales)
print("Total vocales:", contador)

Nivel Intermedio

1) List comprehension — cuadrados

Crear lista de cuadrados del 1 al 10.

cuadrados = [n*n for n in range(1, 11)]
print(cuadrados)

2) Contar frecuencia de palabras

texto = "hola mundo hola python hola mundo"
frecuencia = {}

for palabra in texto.split():
    frecuencia[palabra] = frecuencia.get(palabra, 0) + 1

print(frecuencia)

3) Manejo de archivos

Leer un archivo y mostrar cuántas líneas tiene.

with open("archivo.txt", "r") as f:
    lineas = f.readlines()

print("Número de líneas:", len(lineas))

Nivel Avanzado

1) Programación orientada a objetos

class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad
    
    def saludar(self):
        return f"Hola, soy {self.nombre}"

p = Persona("Juan", 30)
print(p.saludar())

2) Decoradores

def log(func):
    def wrapper(*args, **kwargs):
        print("Ejecutando:", func.__name__)
        return func(*args, **kwargs)
    return wrapper

@log
def sumar(a, b):
    return a + b

print(sumar(3, 4))

3) Generadores

def contador(n):
    for i in range(n):
        yield i

for num in contador(5):
    print(num)

Nivel Experto

1) Async / Await

import asyncio

async def tarea(nombre):
    await asyncio.sleep(1)
    print("Tarea completada:", nombre)

async def main():
    await asyncio.gather(tarea("A"), tarea("B"), tarea("C"))

asyncio.run(main())

2) Procesamiento eficiente sin librerías

Sumar lista de millones de números usando generadores.

numeros = (i for i in range(10_000_000))
print(sum(numeros))

3) Expresiones regulares complejas

import re

texto = "Email: usuario@example.com y otro test@mail.com"
patron = r"[\\w.]+@[\\w.]+"
correos = re.findall(patron, texto)
print(correos)

Proyectos Prácticos

1) Analizador de texto

def analizar(texto):
    palabras = texto.split()
    return {
        "caracteres": len(texto),
        "palabras": len(palabras),
        "promedio_longitud": sum(len(p) for p in palabras) / len(palabras)
    }

print(analizar("Python es un lenguaje poderoso y simple"))

2) Mini sistema de tareas (diccionarios)

tareas = {}

def agregar(id, desc):
    tareas[id] = {"desc": desc, "done": False}

def completar(id):
    tareas[id]["done"] = True

agregar(1, "Estudiar Python")
agregar(2, "Hacer ejercicio")
completar(1)

print(tareas)

3) Filtrar datos (similar a ETL simple)

datos = [
    {"nombre": "Juan", "edad": 17},
    {"nombre": "Ana", "edad": 25},
    {"nombre": "Luis", "edad": 30},
]

adultos = [d for d in datos if d["edad"] >= 18]
print(adultos)
whatsapp