def operaciones_matematicas(lista):
try:
# Intentar convertir cada elemento de la lista a un número flotante
lista_numerica = []
for x in lista:
try:
lista_numerica.append(float(x)) # Convierte el elemento a un número
except ValueError:
# Lanza un ValueError si el elemento no se puede convertir
raise ValueError(f"'{x}' no es un número válido.")
# Calcular la suma de los elementos en la lista
suma = sum(lista_numerica)
print(f"Suma: {suma}")
# Calcular el promedio, manejando el posible ZeroDivisionError
promedio = suma / len(lista_numerica) # Esto fallará si la lista está vacía
print(f"Promedio: {promedio}")
# Calcular el producto de todos los elementos de la lista
producto = 1
for num in lista_numerica:
producto *= num # Multiplica cada elemento acumulativamente
print(f"Producto: {producto}")
except ZeroDivisionError:
# Se ejecuta si intentamos dividir por cero (lista vacía)
print("Error: División por cero. Asegúrate de que la lista no esté vacía.")
except ValueError as ve:
# Captura y muestra el error si hay elementos no numéricos
print(f"Error: {ve}")
except TypeError:
# Captura errores donde el tipo de datos no sea compatible
print("Error: La lista debe contener solo valores numéricos.")
except Exception as e:
# Captura cualquier otro error no previsto
print(f"Error inesperado: {e}")
# Ejemplo de uso
# La entrada se simula con una lista que puede contener errores, como letras o caracteres especiales
entrada = input("Ingrese los valores separados por comas: ") # Ejemplo: 1, 2, a, 4, 0
valores = entrada.split(",") # Divide la entrada en una lista de strings
operaciones_matematicas(valores)