Olá, Matheus, como vai?
O seu código está bem estruturado e a função que você criou já cobre as verificações principais do problema. No entanto, reparei que você definiu a função verificacao(a)
, mas não chegou a utilizá-la no fluxo principal do programa. Por isso, mesmo que o usuário digite um valor incorreto, a mensagem de “CPF Válido” será exibida de qualquer forma.
Uma forma de corrigir isso é chamar a função após receber a entrada, passando o CPF digitado como argumento. Além disso, como o input
já retorna uma string, não é necessário o uso do try
e except
nesse caso, pois não há conversão de tipo que possa gerar erro.
Por exemplo:
def verificacao(a):
elementos = len(a)
conteudo = a.isdigit()
if not conteudo:
print('Erro: O CPF deve conter apenas números.')
elif elementos != 11:
print('Erro: O CPF deve ter exatamente 11 dígitos.')
else:
print('CPF válido.')
cpf = input('Digite seu CPF: ')
verificacao(cpf)
Dessa forma, a função é de fato executada com a entrada do usuário e as mensagens corretas são exibidas de acordo com cada situação.
Continue compartilhando seus exercícios por aqui, Matheus, o fórum está à disposição para você trocar ideias e evoluir ainda mais.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!