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

[Dúvida] retorno de Erro de conversão

Bom dia, esse exercício tive que ver a opinião do instrutor, quando a lista está indo correta o retorno dá certo, mas se um dos números telefônicos vier com uma string, exemplo: o número 21912345678 eu coloquei um A no meio, ele não retorna "Erro na conversão" ele está retornando "ValueError: invalid literal for int() with base 10: '219123456A78'"

Nesse caso eu deveria usar try-exception ?

2 respostas
solução!

Claro! Aqui vai uma resposta clara e didática para a pessoa desconhecida:

Bom dia! Sim, nesse caso o uso de try-except é exatamente o caminho certo. Quando você tenta converter uma string para int() e ela contém algo que não é número (como a letra A que você mencionou), o Python lança um ValueError. Para lidar com isso de forma elegante e evitar que o programa pare de funcionar, o ideal é envolver a conversão em um bloco try e tratar esse erro com except.

Aqui vai um exemplo de como fazer isso: lista_telefones = ['21912345678', '219123456A78', '21987654321']

for telefone in lista_telefones: try: numero = int(telefone) print(f"Número convertido com sucesso: {numero}") except ValueError: print("Erro na conversão")

    Assim, quando algum valor não puder ser convertido, o programa não quebra e você tem um retorno mais amigável como “Erro na conversão”.

Simulando com um telefone inválido ficaria assim, só que fiz uma função


def converter_telefone(telefone):  
     try: 
         telefone = int(telefone)
         return f'{telefone} - Convertido com sucesso ! '
     except ValueError:
      return f'{telefone} - Fora do padrão ! '

telefones = ["11987654321", "219A12345678", "31987654321", "11911223344"] 
for telefone in telefones:
   print(converter_telefone(telefone))