2
respostas

Minha resposta

Fiz da Seguinte forma:

def verificacao(a):
    elementos = len(a)
    conteudo = a.isdigit()
    if conteudo == False:
        print('Erro: O CPF deve conter apenas números.')
    elif elementos != 11:
        print('Erro: O CPF deve ter exatamente 11 dígitos. ')

try:
    cpf = input('Digite seu CPF:')
    print('CPF Válido.  ')
except:
    print('Erro404!')
2 respostas

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.

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

Boa noite, Mike, obrigado pelo retorno!
Na hora, acabei não percebendo isso. Obrigado pelo detalhe!