sábado, 7 de marzo de 2026

10 Ejercicios Resueltos de Python: Guía Definitiva para Ingeniería Informática

Si estás en primero de Grado en Ingeniería Informática, este post es tu salvavidas. Hemos recopilado 10 ejercicios clásicos de exámenes de la UPM, UPC, UGR y más, con soluciones optimizadas.




1. El Factorial Recursivo (UPM)

Enunciado: Calcula el factorial de un número $n!$ usando recursividad.

def factorial(n):
    if n == 0: return 1
    return n * factorial(n - 1)

2. Criba de Eratóstenes Simplificada (UPC)

Enunciado: Devuelve una lista de números primos hasta un límite $N$.

def primos(n):
    res = []
    for i in range(2, n + 1):
        if all(i % d != 0 for d in range(2, int(i**0.5) + 1)):
            res.append(i)
    return res

3. Verificador de Palíndromos (UGR)

Enunciado: Detecta si una frase es palíndroma ignorando espacios.

def es_palindromo(s):
    s = s.lower().replace(" ", "")
    return s == s[::-1]

4. Frecuencia de Palabras (UV)

Enunciado: Cuenta cuántas veces aparece cada palabra en un texto.

def frecuencia(texto):
    palabras = texto.split()
    dic = {}
    for p in palabras:
        dic[p] = dic.get(p, 0) + 1
    return dic

5. Búsqueda Binaria (UC3M)

Enunciado: Implementa la búsqueda eficiente en listas ordenadas.

def busqueda_binaria(lista, x):
    izq, der = 0, len(lista) - 1
    while izq <= der:
        m = (izq + der) // 2
        if lista[m] == x: return m
        if lista[m] < x: izq = m + 1
        else: der = m - 1
    return -1

6. Transposición de Matrices (UMA)

Enunciado: Dada una matriz, devuelve su transpuesta.

def transponer(m):
    return [[m[j][i] for j in range(len(m))] for i in range(len(m[0]))]

7. Sucesión de Fibonacci (US)

Enunciado: Genera los primeros $n$ números de la serie.

def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        print(a)
        a, b = b, a + b

8. Filtro de Mayores de Edad (UAM)

Enunciado: Filtra un diccionario de personas por edad > 18.

def filtrar_adultos(personas):
    return {k: v for k, v in personas.items() if v >= 18}

9. Validador de Anagramas (UA)

Enunciado: Determina si dos palabras contienen las mismas letras.

def es_anagrama(p1, p2):
    return sorted(p1) == sorted(p2)

10. Inversión de Cadenas (URJC)

Enunciado: Invierte una cadena sin usar [::-1].

def invertir(s):
    res = ""
    for char in s: res = char + res
    return res

No hay comentarios:

Publicar un comentario