Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

"SyntaxError: invalid token" quando inserimos cep em formato int iniciando com zeros. Mesmo problema aconteceu no curso de validação de CNPJ.

Inserindo o valor como str resolve o problema, mas não é uma solução muito boa. Existe alguma solução melhor para isso?

Segue o código.

class BuscaEndereco:

  def __init__(self,cep):
    cep = str(cep)
    if self.cep_e_valido(cep):
      self.cep = cep
    else:
      raise ValueError ("CEP Inválido")

  def __str__(self):
    return self.format_cep()

  def cep_e_valido(self, cep):
    if len(cep) == 8:
      return True
    else:
      return False

  def format_cep(self):
    return "{}-{}".format(self.cep[:5],self.cep[5:])
1 resposta
solução!

Olá Graciliano, tudo bem com você?

Realmente temos um grande problema nisso! A razão é que o Python não permite que números inteiros comecem com zero a esquerda, e tem uma razão para isso, antigamente o python em sua versão 2 utilizava o 0 na frente do número para definir estava na base octal ou não!

Então para solucionar esse problema, teremos que recorrer a sua ideia mesmo, e enviar no formato de string para evitar que tenhamos esse problema de sintaxe da própria linguagem :)

Agora uma opinião pessoal, acredito que trabalhar com o CEP em formato de string faz mais sentido do que com números, afinal não podemos fazer nenhuma operação com eles :)

Abraços e Bons Estudos!

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