Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio: hora da prática_09 Parte 1

#1

try:
  num1 = float(input("Digite o primeiro número: "))
  num2 = float(input("Digite o segundo número: "))

  resultado = num1 / num2
except ZeroDivisionError:
  print(f"Não é possível Dividir por 0.")
except ValueError as e:
  print(f"Informe somente números inteiros ou ponto flutuante.")
except Exception as e:  
  print(f"Ocorreu um erro: {type(e)} - {e}")  
else:
  print(f'O resultado da divisão é: {resultado}')
  #2
  
  idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}

  chave = input("Digite um nome: ").lower().capitalize()

  try:
    valor = idades[chave]
  except KeyError:
    print(f"Nome não encontrado")
  else:
    print(f'O resultado da busca é: {valor}')
#3

def converterListaToFloat(lista):
  try:
    for i in range(len(lista)):
      lista[i] = float(lista[i])
  except ValueError as e:
    print(f"Ocorreu um erro: {type(e)} - {e}")
  else:
    return lista  
  finally:
    print(f'Fim da execução da função')


#lista =[1,2,3,4,5,6]
#lista =[1,2,'a',4,5,6]
lista = [1.0, 2.0]

listaFloat = converterListaToFloat(lista)

print(listaFloat)
#4
def agruparListas(lista1, lista2):
  listaTuplas = []
  try:
    if len(lista1) == len(lista2):
      for i in range(len(lista1)):
        listaTuplas.append((lista1[i], lista2[i], lista1[i] + lista2[i]))
    else:
      raise IndexError('A quantidade de elementos em cada lista é diferente.')
  except IndexError as e:
    print(f'A quantidade de elementos em cada lista é diferente')
  except TypeError as e:  
    print(f"Lista contém valores incoerentes.")
  except Exception as e:
    print(f'Um erro ocorreu {e} - {type(e)}')        
  else:
    return listaTuplas


def caso1():
  '''
  Valores sem erro
  '''
  lista1 = [4,6,7,9,10]
  lista2 = [-4,6,8,7,9]
  try:
    listaagrupada = agruparListas(lista1, lista2)
  except Exception as e:
    print(f'Um erro ocorreu: {e} - {type(e)}')  
  else:
    print(listaagrupada)  


def caso2():
  '''
  Listas com tamanhos diferentes
  '''
  lista1 = [4,6,7,9,10,4]
  lista2 = [-4,6,8,7,9]
  try:
    listaagrupada = agruparListas(lista1, lista2)
  except Exception as e:
    print(f'Um erro ocorreu: {e} - {type(e)}')  
  else:
    print(listaagrupada)  


def caso3():
  '''
  Listas com valores incoerentes
  '''
  lista1 = [4,6,7,9,'A']
  lista2 = [-4,'E',8,7,9]

  try:
    listaagrupada = agruparListas(lista1, lista2)
  except Exception as e:
    print(f'Um erro ocorreu: {e} - {type(e)}')  
  else:
    print(listaagrupada)  


caso1()
caso2()
caso3()
2 respostas
solução!

Olá, Marcelo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o tratamento de exceções para garantir robustez com Python, utilizou muito bem o bloco try/except para lidar com diferentes cenários e ainda compreendeu a importância da estrutura else/finally para organizar o fluxo de execução.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum. E uma dica interessante para o futuro é simplificar a captura de erros agrupando exceções em uma mesma cláusula. Assim:

try:
    num1 = float(input("Digite o primeiro número: "))
    num2 = float(input("Digite o segundo número: "))
    resultado = num1 / num2
except (ZeroDivisionError, ValueError) as e:
    print(f"Ocorreu um erro: {e}")
else:
    print(f"O resultado da divisão é: {resultado}")

Isso faz com que diferentes tipos de erro sejam tratados de forma mais enxuta em um único bloco.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Show essa dica de agrupar, obrigado