Oi, Nathã. Tudo bem com você?
Gostei de você ter compartilhado o processo que usou para chegar na solução. Mesmo sem usar list comprehension, a sua implementação atende à lógica proposta na atividade. Na função coverter_inteiro, você percorre cada telefone com o for, converte o valor usando int() e adiciona o resultado em uma nova lista. Depois, na função check_in, você utiliza isinstance(num, int) para verificar se cada elemento realmente é um inteiro. A lógica de retornar uma mensagem de erro assim que encontrar um valor que não seja int também funciona bem para essa validação.
Uma coisa interessante para observar é que você não precisa necessariamente conhecer list comprehension para resolver o exercício. A estrutura com for que você utilizou é totalmente válida e, inclusive, pode ser uma forma mais fácil de entender o que está acontecendo com cada elemento antes de aprender uma sintaxe mais compacta. Depois, quando você se sentir confortável, pode comparar essa solução com algo como [int(telefone) for telefone in telefones] e perceber que as duas fazem essencialmente a mesma conversão.
Parabéns pelo exercício, Nathã, e principalmente por ter experimentado diferentes formas de chegar ao resultado. Continue compartilhando seus códigos e seu processo de aprendizagem por aqui. O fórum está à disposição.
Para saber mais:
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!