Olá, Lucas, como vai?
Seu código está funcional e cumpre bem a proposta do exercício. A lógica que você aplicou para limpar o CPF e validar se contém apenas números está clara e direta. Além disso, o uso de replace e strip para remover caracteres indesejados é uma boa escolha para tratar entradas comuns de CPF com pontos e traços.
Uma pequena melhoria seria simplificar a verificação de números utilizando cpf.isdigit() em vez de percorrer cada caractere com o for. Isso deixa o código mais limpo e fácil de entender. Por exemplo:
cpf = input('Digite seu CPF: ')
cpf = cpf.replace('.', '').replace('-', '').strip()
if not cpf.isdigit():
print('Erro: O CPF deve conter apenas números.')
elif len(cpf) != 11:
print('Erro: O CPF deve ter exatamente 11 dígitos.')
else:
print('CPF válido.')
Continue compartilhando seus exercícios. O fórum está à disposição para acompanhar seu progresso e ajudar quando precisar.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!