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

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))
1 respuesta

Hola , espero que estés muy bien.

Felicitaciones por tu aprendizaje. Estamos priorizando el foro para postear dudas, así optimizamos el tiempo de respuesta para ustedes.

Para no dejar de compartir los códigos, actividades y ejercicios que realizas, creamos un canal en Discord (#compartatucodigo) donde puedes compartirlos, dar y sugerir mejoras con el resto de tus compañeros.

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios