1
resposta

Erro ao iniciar CNPJ com 00

Ao fazer a aula de validação de CNPJ colequei o CNPJ da empresa que trabalho:

  1. E gera o seguinte erro:
    SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
    Na classe já possui função para converter para string:
    class Cnpj:
    def __init__(self, documento):
    documento = str(documento)
    if self.Cnpj_eh_valido(documento):
    self.cnpj = documento
    Não consegui resolver!
1 resposta

Olá Leirson, tudo bem com você?

Então esse problema é bem comum, acontece que não podemos ter uma variável no formato numérico que comece com 0, e tem uma razão para isso:

Na versão 2 do Python esse 0 inicial era uma flag para identificar que se tratava de um número na base octal, entretanto na versão 3 modificaram esse comportamento, então por padrão não é permitido começar um número inteiro com 0, veja que o seu erro diz um pouco sobre isso:

decimal integer literals are not permitted; use an 0o prefix for octal integers

O que ele está dizendo é que para valores octais é necessário utilizar o prefixo 0oe não apenas 0, ou seja, o erro não está com o seu programa, e sim, com o python querendo te avisar que essa maneira de escrever um número octal não funciona

E para corrigir esse problema? Teremos que declarar o nosso CNPJ no formato de string mesmo, dessa maneira o python não irá reclamar de nada e nosso programa terá sua execução normal :)

cnpj = "01234567890123"

Agora apenas uma opinião minha, tanto CPF quanto CNPJ acredito que faz sentido sempre trabalhar com o formato de string, pois não há operações numéricas a serem realizadas com ele!

Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!