Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] Sección 5 - Estructura de Datos con Python

Sección 5 - Estructura de datos con Python

# 1 - División con manejo de errores
try:
    num1 = float(input("Ingresa el primer número: "))
    num2 = float(input("Ingresa el segundo número: "))
    resultado = num1 / num2
except ZeroDivisionError as e:
    print(f"Error: No se puede dividir entre cero. ({e})")
except ValueError as e:
    print(f"Error: Entrada inválida. ({e})")
else:
    print(f"Resultado de la división: {resultado}")

# 2 - Búsqueda en diccionario con manejo de KeyError
edades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
clave = input("Ingresa el nombre a buscar: ")
try:
    edad = edades[clave]
except KeyError:
    print("Nombre no encontrado")
else:
    print(f"Edad de {clave}: {edad}")

# 3 - Conversión de lista a flotantes con manejo de errores
def convertir_a_flotante(lista):
    try:
        return [float(x) for x in lista]
    except Exception as e:
        print(f"Error: {e}")
    finally:
        print("Fin de la ejecución de la función")

# 4 - Agrupar listas con manejo de errores
def agrupar_listas(lista1, lista2):
    try:
        if len(lista1) != len(lista2):
            raise IndexError("La cantidad de elementos en cada lista es diferente.")
        return [(a, b, a + b) for a, b in zip(lista1, lista2)]
    except Exception as e:
        print(f"Error: {e}")

# Pruebas para la función agrupar_listas
# lista1 = [4, 6, 7, 9, 10]
# lista2 = [-4, 6, 8, 7, 9]
# print(agrupar_listas(lista1, lista2))

# 5 - Contabilizar puntuaciones con validación
def calcular_puntajes(respuestas, tests):
    try:
        for test in tests:
            for r in test:
                if r not in ['A', 'B', 'C', 'D']:
                    raise ValueError(f"La alternativa {r} no es una opción de alternativa válida")
        puntajes = [sum(1 for r, t in zip(respuestas, test) if r == t) for test in tests]
        print(f"Puntajes: {puntajes}")
    except ValueError as e:
        print(f"Error: {e}")

# 6 - Validar texto tratado de puntuaciones
def validar_texto(lista):
    try:
        for palabra in lista:
            if any(p in palabra for p in [',', '.', '!', '?']):
                raise ValueError(f"El texto presenta puntuaciones en la palabra \"{palabra}\"")
        print("Texto limpio de puntuaciones.")
    except ValueError as e:
        print(f"Error: {e}")
1 respuesta

Enhorabuena!

Te comparto mi código, es el que más me costo realizar.

def agrupar_y_sumar(lista1, lista2):
    """
    Recibe dos listas y devuelve una lista de tuplas con (a, b, a+b).
    Maneja errores de tamaños desiguales y tipos incompatibles.
    """
    try:
        if len(lista1) != len(lista2):
            raise IndexError("La cantidad de elementos en cada lista es diferente.")

        resultado = [
            (a, b, a + b) for a, b in zip(lista1, lista2)
        ]
        return resultado

    except IndexError as e:
        print(f"IndexError: {e}")
        return []
    except TypeError as e:
        print(f"TypeError: No se pueden sumar tipos incompatibles -> {e}")
        return []
    except Exception as e:
        print(f"Error inesperado: {type(e).__name__} -> {e}")
        return []