1
resposta

Código não compila dados inteiros, apenas dados entre aspas.

Estou tentando passar dados inteiros, assim como no exemplo, mas obtenho o seguinte erro:

>>> d = Data(02, 04, 2005)
  File "<stdin>", line 1
    d = Data(02, 04, 2005)
              ^
SyntaxError: invalid token

Só dá certo se passo os atributos entre aspas:

>>> d = Data('02', '04', '2005')
>>> d.imprimir_data()
02/04/2005
>>>

Apesar do curso ser em python2.7 estou usando python3.5, mas ainda assim não achei nada que explicasse o motivo do erro.

Segue o código utilizado:

class Data(object):
    'Classe padrão para datas'

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

    def imprimir_data(self):
        print('%s/%s/%s' % (self.dia, self.mes, self.ano))
1 resposta

Oi Gabriel, o problema é o zero a esquerda do 02 e do 04 que causam erro de sintaxe. Tente fazer :

d = Data(2, 4, 2005)

No Python3 o interpretador não aceita o zero a esquerda de um inteiro.

espero ter ajudado e bons estudos!