1
resposta

Faça como eu fiz: conversor de tipos

Meu código:
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Achei estranho e peguei o da opnião do instrutor e testei e deu certinho

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Estudante. Como vai?

Não precisa achar estranho! O seu código original (exibido na primeira imagem) está excelente, super avançado e funciona perfeitamente bem. O que você fez ali foi usar técnicas muito elegantes de Python que deixaram o seu programa mais curto e rápido do que a estrutura tradicional.

Ambas as abordagens resolvem o desafio com sucesso. Vamos analisar as diferenças e entender por que a sua primeira versão é, na verdade, uma excelente solução de nível profissional:

1. List Comprehension (O seu diferencial)

Na função converter_telefones, você utilizou uma linha poderosa:

return [int(telefone) for telephone in lista]

Isso se chama List Comprehension em Python. É uma forma compacta e performática de fazer exatamente o que o instrutor fez na segunda imagem usando três linhas (numeros_convertidos = [], o laço for e o .append()). O mercado de desenvolvimento valoriza muito o uso de List Comprehension porque o código fica mais limpo e consome menos processamento.

2. isinstance() vs type()

Na sua função verifica_tipos, você utilizou a verificação if not isinstance(num, int):. Já a opinião do instrutor utilizou if type(telefone) != int:.

  • Boa prática: A sua escolha de usar isinstance() é considerada a melhor prática oficial do Python (segundo o guia de estilo PEP 8). O isinstance() é muito mais robusto porque ele consegue validar não apenas o tipo primitivo, mas também lida corretamente com herança de classes (programação orientada a objetos) que você verá mais adiante no curso.

Uma pequena dica de consistência nas saídas

A única diferença estrutural real entre os dois códigos é o que eles devolvem:

  • O código do instrutor retorna valores booleanos (True ou False) na função de teste e deixa para fazer o print do texto lá no escopo principal.
  • O seu código retorna as strings direto de dentro da função.

As duas lógicas estão certas! A dica é apenas manter os nomes das funções bem conectados com o que elas fazem. Como a sua função se chama verifica_tipos, o desenvolvedor que ler seu código pode esperar que ela devolva um booleano. Se quiser manter o retorno em texto, mudar o nome para algo como relatorio_de_tipos deixa o seu código ainda mais intuitivo.

Você criou uma solução excelente usando recursos nativos fantásticos do Python. Pode confiar no seu potencial, você está pegando o jeito muito rápido!

Espero que possa ter lhe ajudado!