1
resposta

[Projeto] Validação cpf

import re 

cpf = input('Digite o CPF: ')


def validacao_cpf(cpf):
    padrao = r'^\d{3}\.?\d{3}\.?\d{3}\.?-\d{2}$'
    return bool(re.fullmatch(padrao, cpf))

if validacao_cpf(cpf):
    print('CPF válido!')
else:
    print('CPF inválido!')
1 resposta

Olá, Mateus! 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!