Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Desafío: hora de practicar - Trabajando con Excepciones - Parte 1

[1]

numero_1 = input("Ingrese primer número: ")
numero_2 = input("Ingrese segundo número: ")
numeros = []
try:
  numeros.append(float(numero_1))
  numeros.append(float(numero_2))
  print(numeros)


  def division(lista):
    ''' Función para calcular la división entre 2 números ingresados a una lista
    lista:
      Lista con las notas para calcular la división
    return = division: float
      División calculada
    '''
    if lista[0] == 0 or lista[1] == 0:
      raise ZeroDivisionError("El número divisor no puede ser 0")
    div = lista[0]/lista[1]
    return div
  resultado = round(division(numeros),1)

except TypeError:
  print("Error de tipo")
except ZeroDivisionError as e:
  print(e)
except ValueError:
  print("Debe ingresar un valor numérico")
else:
  print(f"El resultado de la división es: {resultado}")
finally:
  print("La consulta ha concluido.")

[2]

edades = {'Julia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}
try:
  ingreso_nombre = input("Ingresa el nombre de la persona a buscar: ")
  edad = edades[ingreso_nombre]

except KeyError:
  print("Nombre no encontrado.")

else:
  print(f"La edad del/la estudiante {ingreso_nombre} es: {edad} años.")

[3]

def convertir_a_flotantes(lista):
  '''Convierte todos los valores de una lista a tipo float.

  Parámetros:
    lista: list
      Lista con valores a convertir

  Retorna:
    list: Lista con valores convertidos a float si no hay errores
  '''
  if not lista:
    print("La lista está vacía.")
    return []

  try:
    lista_convertida = [float(valor) for valor in lista]
  except TypeError as e:
    print(f"Ocurrió un error: TypeError - El argumento debe ser una cadena o un número real, no 'NoneType'.")
    return None
  except ValueError as e:
    print(f"Ocurrió un error: ValueError - No se ha podido convertir cadena a float.")
    return None
  else:
    return lista_convertida
  finally:
    print("Fin de la ejecución de la función.")


print(convertir_a_flotantes(["4", "5.5", 3]))
#[4.0, 5.5, 3.0]

print(convertir_a_flotantes([None, 2]))
#TypeError

print(convertir_a_flotantes(["4", "hola", 2]))
#ValueError

print(convertir_a_flotantes([]))
#Lista vacía

[4]

def crear_lista_de_tuplas(l1, l2):
  try:

    # Validación de longitud
    if len(l1) != len(l2):
      raise IndexError("Ocurrió un error: IndexError - La cantidad de elementos en cada lista es diferente.")

    # Validación de contenido (solo números)
    for x in l1 + l2:
      if not isinstance(x, (int, float)):
        raise TypeError("Ocurrió un error: TypeError - Todos los elementos deben ser numéricos.")

    # Crear la lista de tuplas
    lista_tuplas = [(l1[i], l2[i], l1[i] + l2[i]) for i in range(len(l1))]
    return lista_tuplas

  except (IndexError, TypeError) as e:
    print(e)

#Valores sin error
lista1 = [4, 6, 7, 9, 10]
lista2 = [-4, 6, 8, 7, 9]

#Listas con tamaños diferentes
lista3 = [4, 6, 7, 9, 10, 4]
lista4 = [-4, 6, 8, 7, 9]

#Listas con valores incoherentes
lista5 = [4, 6, 7, 9, 'A']
lista6 = [-4, 'E', 8, 7, 9]

print("Valores sin error".upper())
print(crear_lista_de_tuplas(lista1,lista2))

print("\nListas con tamaños diferentes".upper())
print(crear_lista_de_tuplas(lista3,lista4))

print("\nListas con valores incoherentes".upper())
print(crear_lista_de_tuplas(lista5,lista6))