Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Faça como eu fiz: conversor de tipos | Praticando Python: funções

Nessa solução, a função converter_telefones() percorre a lista de telefones em formato texto (str) e converte cada item para inteiro (int). Em seguida, a função verificar_conversao() confere se todos os elementos da lista são do tipo inteiro. Se encontrar algum valor diferente, retorna uma mensagem de erro; caso contrário, informa que a conversão foi realizada com sucesso.

def converter_telefones(lista):
    telefones_convertidos = []

    for telefone in lista:
        telefones_convertidos.append(int(telefone))

    return telefones_convertidos


def verificar_conversao(lista):
    for telefone in lista:
        if type(telefone) != int:
            return "Erro na conversão."

    return "Todos os números foram convertidos corretamente!"


telefones = ["11987654321", "21912345678", "31987654321", "11911223344"]

telefones_convertidos = converter_telefones(telefones)

print(verificar_conversao(telefones_convertidos))

Saída:

Todos os números foram convertidos corretamente!
1 resposta
solução!

Oi, estudante. Tudo bem com você?

A criação das duas funções isoladas demonstra uma excelente compreensão sobre modularização e responsabilidade única no desenvolvimento de software. A primeira percorre a lista e realiza o append dos novos tipos numéricos com sucesso, enquanto a segunda utiliza muito bem a checagem com a função type e o operador de diferença para validar a integridade dos dados finais.

Uma dica interessante para tornar o código ainda mais idiomático em Python envolve o uso de list comprehension e da função isinstance. Substituir o laço de acumulação manual por uma compreensão de lista deixa o código limpo e otimizado. Como exemplo prático, a primeira função poderia retornar diretamente a conversão escrevendo return [int(telefone) for telefone in lista]. Na sequência, a checagem de tipos se beneficia do método isinstance, que é o padrão recomendado no mercado, bastando escrever if not isinstance(telefone, int): para realizar a validação interna.

Como você avalia a legibilidade do código ao adotar a sintaxe de list comprehension em funções de transformação de dados como essa?

Parabéns pelo excelente desempenho na atividade, saiba que o fórum continua totalmente à disposição para suas futuras interações.

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