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

[Sugestão] Resolução Verificando o formato de um CPF

import re

while True:
    cpf = input('Digite o CPF (no formato XXX.XXX.XXX-XX): ')
    if re.fullmatch(r'\b\d{3}.\d{3}.\d{3}-\d{2}\b', cpf):
        print('O CPF está no formato correto.')
        break
    else:
        print('O CPF está no formato incorreto. Insira novamente!')
1 resposta
solução!

Olá, Luis! Tudo bem?

Parabéns! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Percebi que você dominou o uso de expressões regulares com re para validação de padrões, aplicou muito bem o método re.fullmatch() para garantir que o CPF siga o formato correto, e ainda demonstrou compreender a relevância de validar entradas de usuário para evitar erros e inconsistências nos dados.

Uma sugestão interessante para evoluir ainda mais é usar a substituição com re.sub() com o objetivo de padronizar a entrada, mesmo que o usuário digite sem pontos ou traço. Veja só:

import re

cpf = input('Digite o CPF: ')
cpf_formatado = re.sub(r'\D', '', cpf)  # Remove tudo que não for dígito

if len(cpf_formatado) == 11:
    print('CPF contém 11 dígitos. Formatação válida!')
else:
    print('CPF inválido!')

print(f'CPF formatado: {cpf_formatado}')

Resultado:

Digite o CPF: 999.999.999-99
CPF contém 11 dígitos. Formatação válida!
CPF formatado: 99999999999

Essa abordagem ajuda a tornar o código mais flexível e tolerante a diferentes formatos de entrada.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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