1
resposta

Desafio: hora da prática

1

try:
 num1 = float(input('Informe um número decimal: '))
 num2 = float(input('Informe um número decimal: '))
 resultado = num1/num2
except ZeroDivisionError as e:
  print(type(e), 'O denominador não pode ser igual a zero.')
except ValueError as e:
  print(type (e),'O valor informado deve ser um número.')
else:
  print(f'O resultado da divisão de {num1} por {num2} é {resultado}')

2

idades = {'Júlia': 16, 'Carol': 23, 'Alberto': 19, 'Roberta': 17}

try:
  nome = input('Informe o nome a ser pesquisado: ')
  resultado = idades[nome]
except KeyError:
  print('Nome não encontrado.')
else:
  print(resultado)

3

def converte_para_float (lista):
  try:
    lista_float = [float(i) for i in lista]
  except Exception as e:
    print(type(e), f'Erro :{e}')
  else:
    return lista_float
  finally:
    print('Fim da execução da função')

4

ef listas_soma(lista1, lista2):
    try:
        if len(lista1) == len(lista2):
            dados = [(lista1[i], lista2[i], lista1[i]+lista2[i]) for i in range(len(lista1))]
        else:
            raise IndexError('As listas devem possuir quantidade de elementos iguais.')
    except Exception as e:
        print(type(e), f'Erro: {e}')
    else:
        return dados  

5

gabarito = ['D', 'A', 'B', 'C', 'A']
def corretor_teste(testes: list):
  pontos = []
  try:
    for teste in testes:
      nota = 0
      for i in  range(len(teste)):
        if teste[i] not in ['A', 'B', 'C', 'D']:
          raise ValueError (f'O item  {teste[i]} não é uma opção de resposta.')
        elif teste[i] ==  gabarito[i]:
          nota += 1 
      pontos.append(nota)
  except Exception as e:
    print(e)
  else:
    return pontos     

6

def avalia_palavra(lista:list):
  pontuação = (',','.' , '?' , '!')
  palavra_pontuação = []
  for palavra in lista:
     for ponto in pontuação:
      if  ponto in palavra:
          palavra_pontuação.append(palavra)
          break    

  if palavra_pontuação:   
      raise ValueError (f'O texto apresenta pontuação na palavra :{palavra_pontuação}.')
  else:
    print('Texto já tratado.')   
    
    try:
  avalia_palavra(lista_tratada)           
except ValueError as e:
    print(e)

7

def divide_colunas(pressoes, temperaturas):
   try:
     if len(pressoes) == len(temperaturas):
       razao = [pressoes[i]/temperaturas[i] for i in range(len(pressoes))]
     elif   len(pressoes) != len(temperaturas):
       raise ValueError("As listas precisam ter o mesmo tamanho")
   except  ZeroDivisionError as e  : 
    print(type(e),'O divisor deve ser um número diferente de zero.')
   except ValueError as e:
     print(type(e),'As listas devem possuir quantidade de elementos iguais.')
   else: 
     return razao
    
1 resposta

Oi, Marcia!

Obrigado por compartilhar suas reflexões e aprendizados com a comunidade Alura.

Gostei da sua abordagem ao tratar exceções no código. Seu uso de try/except está bem estruturado, cobrindo diferentes cenários de erro. Além disso, a inclusão do else e finally nas funções mostra um bom entendimento do fluxo de execução.

Espero ter ajudado! Bons estudos!

Sucesso