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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!