Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] print() e formatação

olá estou treinando e estudando a função input() e cheguei a um código que pede ao usuário o número de telefone, quando é digitado letreas ele informa que o numero de telefone é inválido e pede novamente os numeros. Porem, queria conseguir que os numeros mostrados pelo print() estivessem editados assim: 61-xxxxx-xxxx e não 61xxxxxxxxx.

numero_telefone = input("Digite o seu número de telefone: ")

while not numero_telefone.isdigit():
     print("Número de telefone inválido. Digite apenas números.")
     numero_telefone = input("Digite o seu número de telefone: ")

if len(numero_telefone) != 11:
     print("Número de telefone inválido. Digite um número de 11 dígitos.")
     numero_telefone = input("Digite o seu número de telefone: ")

print(f"O seu número de telefone é {numero_telefone}")

como posso alterar o código para mostrar essa formatação?

1 resposta
solução!

Oi, Bruno! Tudo bem com você?

Para formatar o número de telefone, podemos separar a variável numero_telefone em fragmentos, usando a seguinte estrutura:

print(f"O seu número de telefone é {numero_telefone[:2]}-{numero_telefone[2:7]}-{numero_telefone[7:]}")

No código acima, estamos usando a indexação de strings para dividir o número de telefone em três partes: os dois primeiros dígitos, os próximos cinco dígitos e os últimos quatro dígitos. Por fim, inserimos essas partes na string formatada com os hifens nos lugares corretos!

Uma outra maneira de solucionar este problema é trabalhando com expressões regulares (regex)! Quando pensamos em limpeza e tratamento de dados, essa é uma alternativa muito comum. Acompanhe comigo o código a seguir:

import re

# restante do código omitido

numero_telefone_formatado = re.sub(r'(\d{2})(\d{5})(\d{4})', r'\1-\2-\3', numero_telefone)
print(f"O seu número de telefone é {numero_telefone_formatado}")

Aqui, nós importamos uma biblioteca chamada re. Assim como no método anterior, solicitamos que a variável numero_telefone fosse separada em partes específicas. Entre cada conjunto de dígitos, adicionamos um hífen. O primeiro contato com regex pode gerar bastante curiosidade e dúvida, Bruno. Continue acompanhando a Formação Python para Data Science que você verá este assunto com mais profundidade!

Espero ter ajudado, Bruno! Estarei por aqui caso surjam novas dúvidas.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!