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

Ajuda de como raciocinar para desenvolver este código.

Oi Galera boa noite, estou com dificuldades de como resolver as 2 questões abaixo do curso de "Python para Data Science: trabalhando com funções, estruturas de dados e exceções" parte de Exceções, alguém poderia me ajudar a desenvolver um pensamento de por onde eu começo, eu achei confuso o enunciado.

  1. Crie uma função que recebe uma lista como parâmetro e converta todos os valores da lista para float. A função deve conter um tratamento de erro indicando o tipo de erro gerado e retornar a lista caso não tenha ocorrido nenhum erro. Por fim, deve ter a cláusula finally para imprimir o texto: 'Fim da execução da função'.

  2. Crie uma função que recebe duas listas como parâmetros e agrupe os elementos um a um das listas, formando uma lista de tuplas de 3 elementos, no qual o primeiro e segundo elemento da tupla são os valores na posição i das listas e o terceiro elemento é a soma dos valores na posição i das listas. A função deve conter um tratamento de erro indicando o tipo de erro gerado e retornar como resultado a lista de tuplas. Caso as listas enviadas como parâmetro tenham tamanhos diferentes, a função deve retornar um IndexError com a frase: 'A quantidade de elementos em cada lista é diferente.' Dados para testar a função: lista1 = [4,6,7,9,10] lista2 = [-4,6,8,7,9] lista1 = [4,6,7,9,10,4] lista2 = [-4,6,8,7,9] lista1 = [4,6,7,9,'A'] lista2 = [-4,'E',8,7,9]

2 respostas
solução!

Olá, Vinicius! Como vai?

Vou deixar logo abaixo alguns passos para que você possa entender melhor as questões 3 e 4 do desafio. :)

Questão 3 (Função que converte valores da lista para float com tratamento de exceções):

Passo 1: Defina o objetivo da função

  • A função deve receber uma lista e tentar converter todos os seus elementos para float.
  • Se ocorrer algum erro durante essa conversão, a função precisa capturá-lo e indicá-lo.

Passo 2: Estruture a função com try-except

  • Dentro do bloco try, faça a conversão de cada elemento da lista usando uma compreensão de listas.
  • No bloco except, capture qualquer exceção que ocorra e mostre o tipo do erro.
  • Use a cláusula finally para imprimir uma mensagem que será exibida independentemente de o erro ocorrer ou não.

Passo 3: Exemplo de código

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

Teste a função com diferentes listas para verificar se ela funciona corretamente, tratando os erros quando necessário.

Questão 4 (Função que agrupa elementos de duas listas em tuplas de 3 elementos):

Passo 1: Entenda o que a função precisa fazer

  • A função deve receber duas listas e criar uma nova lista contendo tuplas. Cada tupla deve ter três elementos: os valores correspondentes das duas listas na mesma posição e a soma desses valores.
  • A função deve tratar erros, como listas de tamanhos diferentes ou valores não somáveis.

Passo 2: Estruture a função com try-except

  • No bloco try, combine os elementos das duas listas usando um loop ou compreensão de listas.
  • Se as listas tiverem tamanhos diferentes, lance um IndexError com a mensagem apropriada.
  • Capture o erro e informe qual foi o problema.

Passo 3: Exemplo de código

def soma_listas(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('A quantidade de elementos em cada lista é diferente.')
    except Exception as e:
        print(type(e), f'Erro: {e}')
    else:
        return dados

Teste a função com diferentes cenários para garantir que ela funciona corretamente, tanto com listas de mesmo tamanho quanto com listas de tamanhos diferentes ou contendo valores que não podem ser somados.

→ Dica: Sempre que estiver criando funções com tratamento de exceções, pense primeiro nos possíveis erros que podem ocorrer (como tipos de dados incorretos ou tamanhos de listas diferentes). Isso te ajuda a planejar como o código deve responder em cada situação.

Espero ter ajudado!

Abraço ✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado Maiully, foi bem didático a explicação!