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

[Dúvida] Validar com simbolos

def CPF_checker():
    try:
        count_cpf = len(CPF)

        if count_cpf < 11 or  count_cpf > 11 :
            print("O CPF deve conter exatamente 11 caracteres.")
        elif count_cpf == 11:
            print('CPF checado com sucesso !')
    except:
        print('Deve conter apenas numeros!')

CPF = str(input('Digite o seu CPF: ')).replace('.', '').replace('-', '')

print(f'O CPF sem os caracteres especiais: {CPF}')

CPF_checker()

Minha duvida é se neste codigo que fiz(sei que não atende aos requisitos do exercicio) seria possivel validar se foi digitado alguma letra, porem, deixar passar os simbolos, pois gostaria que fosse possivel digitar eles, mesmo que depois fosse removido os mesmos.

1 resposta
solução!

Olá, Matheus, como vai?

Analisando o seu código, a lógica principal está encaminhada, porém o uso do try/except não garante a validação de caracteres, já que o len() não gera erro quando a string contém letras. Além disso, a função usa a variável CPF definida fora dela, o que funciona, mas pode dificultar a leitura e manutenção. Uma pequena melhoria seria testar diretamente se a entrada contém apenas dígitos usando isdigit().

Se quiser manter sua estrutura atual, basta incluir essa verificação antes de checar o tamanho. Dessa forma você garante que a mensagem sobre caracteres inválidos seja exibida corretamente.

Um exemplo seria algo como:

def CPF_checker(cpf):
    if not cpf.isdigit():
        print("O CPF deve conter apenas números.")
    elif len(cpf) != 11:
        print("O CPF deve ter exatamente 11 dígitos.")
    else:
        print("CPF válido.")

cpf_input = input("Digite o seu CPF: ").replace('.', '').replace('-', '')
print(f"O CPF sem os caracteres especiais: {cpf_input}")
CPF_checker(cpf_input)

Continue compartilhando seus códigos no fórum. Estamos à disposição para ajudar.

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