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

Verificador CPF

def verificacao_cpf(cpf):
    try:
        cpf_numero = float(cpf)
        contador = len(cpf)
        if contador == 11:
            return print(f'O CPF {cpf} é válido')
        else:
            return print(f'Erro: O CPF {cpf} deve ter exatamente 11 dígitos.')

    except ValueError:
        return print(f'Erro: O CPF {cpf} deve conter apenas números.  ')

cpf = input('Digite seu CPF: ')

print (cpf)
verificacao_cpf(cpf)
1 resposta
solução!

Olá, Ricardo, como vai?

O seu código atende bem à proposta geral do exercício e a estrutura da função está clara. A verificação do tamanho com len(cpf) está correta para garantir os 11 dígitos. Há apenas alguns pontos que podem ser ajustados para tornar a validação mais adequada ao problema proposto.

O uso de float(cpf) não é a melhor escolha para validar se o CPF contém apenas números. A conversão para float aceita formatos que não representam um CPF válido, como notação científica (1e10).

Uma forma mais direta de validar se a string contém apenas dígitos é usar isdigit(). Um exemplo de implementação ficaria assim:

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

cpf = input('Digite seu CPF: ')
verificacao_cpf(cpf)

Nesse caso, a verificação acontece diretamente sobre a string digitada pelo usuário, garantindo que todos os caracteres sejam numéricos e que a quantidade seja exatamente 11.

Continue compartilhando suas soluções e explorando outras formas de validação de dados em Python.

O fórum segue à disposição caso queira discutir outras abordagens ou evoluir esse exercício.

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