7
respostas

erro ao digitar a data iniciada por 0

caso eu utilize data = Datas(22,06,2020) por exemplo, ocorre erro. alguem sabe o porque?

class Datas:
    def __init__(self,dia,mes,ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def cria_data(self):
        print("a data é {0}/{1}/{2}".format(self.dia,self.mes,self.ano))
7 respostas

acabei de ver que se o numero for iniciado com 0, o codigo é interpretado como string e nao int.

Oi, você pode ver também se você usou aspas ao iniciar a classe Datas, acho que também pode ser o erro, fica a dica ;)

Assim:

('22','06','2020')

Pq assim ele interpreta como int:

(22,06,2020) 

Olá Francisco, tudo bem? Tive o mesmo problema ao tentar criar uma data começando com 0. O que fiz foi o seguinte:

class Data:
    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def cria_data(self):
        print('Data: {}/{}/{}'.format(self.dia, self.mes, self.ano))

dessa forma, ao criar a data...

from datas import Data
d = Data('09', '11', '1992')
d.cria_data()

o resultado foi justamente o desejado

Data: 09/11/1992

não sei se é a forma mais adequada, mas funcionou :D

Boa tarde

Também não encontrei uma forma de digitar nesse formato 27/06/2020 sem aspas sem que ocorra o erro.

today = Date(27, 06, 2020) File "", line 1 today = Date(27, 06, 2020) ^ SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers

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