1
resposta

CPF inserido com pontos e traço

Olá!

Fiz da mesma forma, acredito eu, que como foi feita na aula 1 de validação! E tudo funcionou conforme o professor fez de exemplo. Porém teve um caso que não consegui resolver!

No main, tenho o cpf insrido igual o da aula: from Cpf import Cpf cpf_um = Cpf('15316264754') print(cpf_um)

Até ai bate certo, mas caso eu coloque o CPF como: 153.162.647-54, ele da erro de quantidade de digitos invalidos!! Pelovalidate_dcobr que importei esse erro ja não seria resolvido? inserindo com ou sem os pontos o valor não deveria ser True? Poderiam me ajudar? Segue abaixo o código com a classe

from validate_docbr import CPF

class Cpf: def init(self, documento): if self.cpf_eh_valido(documento): self.cpf = documento else: raise ValueError('CPF Inválido')

def format_cpf(self):
    mascara = CPF()
    return mascara.mask(self.cpf)

def cpf_eh_valido(self, cpf):
    if len(cpf) == 11:
        validador = CPF()
        return validador.validate(cpf)
    else:
        raise ValueError('Quantidade de digitos invalidos')

def __str__(self):
    return self.format_cpf()
1 resposta

Fala, Vitor!

O método validate consegue resolver o cpf com '.' e '-' sim. Mas você está caindo no else da primeira condição, no caso, if len(cpf) == 11.

A string '153.162.647-54' ultrapassa o tamanho de 11 caracteres.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software