1
resposta

[Projeto] Mostrando o código

Então, fiz o código sem consultar nada além do pdf disponibilizado, não sei se está certo, if código == 'errado', me explique onde errei ..


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

def converter():

    convertidos = []
    
    for telefone in telefones:
        telefone_int = int(telefone)
        convertidos.append(telefone_int)
    
    if len(convertidos) == len(telefones):
        print('Convertidos com sucesso! ')
    else:
        print("A conversão falhou")

converter()
print(telefones)
1 resposta

Olá, João, como vai?

Seu código está funcional na parte de conversão, mas não segue exatamente o que a atividade pede. A função converter está fazendo tanto a conversão quanto a validação, enquanto o enunciado solicita duas funções separadas. Além disso, a validação que você utilizou compara apenas o tamanho das listas, o que não garante que os valores foram realmente convertidos para inteiro. Outro ponto é que você imprime telefones no final, mas essa lista original não foi modificada, então continuará sendo uma lista de strings.

Uma abordagem mais adequada seria separar responsabilidades: uma função apenas converte e retorna a nova lista, e outra verifica se todos os elementos são do tipo inteiro.

Por exemplo:

def converter(lista):
    return [int(t) for t in lista]

def verificar(lista):
    for item in lista:
        if not isinstance(item, int):
            return False
    return True

Assim você garante que cada função tem uma única responsabilidade e a verificação realmente valida o tipo dos dados.

No geral, a sua lógica de conversão está correta, e é positivo ver que você tentou resolver apenas com o material do curso. Continue compartilhando suas soluções, o fórum está à disposição para ajudar no seu progresso.

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