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

O código não funciona caso o primeiro dígito seja 0

class BuscandoEndereço:

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

    def __str__(self):
        return f'{self.cep[:5]}-{self.cep[5:]}'

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

Diante desse código, caso eu crie um objeto de classe cujo cep seja fornecido por meio de uma string, o programa funciona normalmente. Contudo, caso eu forneça um valor int ao instanciar a classe com o primeiro dígito sendo zero, o código retorna o seguinte erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAlguém sabe por que isso está acontecendo?

1 resposta
solução!

Boa tarde, Gustavo!

O problema é justamente o zero no primeiro dígito de um integer. Se eu não estou enganado, o "0" no início representava a base octal. Para evitar confusão de base, a representação de números em octal no Python passou a ser "0o". Por essa razão, o erro está acontecendo e o "SyntaxError" está recomendando o uso do prefixo "0o".