Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dependendo da data ele não aceita

SyntaxError: invalid token d = Data(12,04,19) File "", line 1 d = Data(12,04,19) ^ SyntaxError: invalid token d = Data(12, 04, 19) File "", line 1 d = Data(12, 04, 19) ^ SyntaxError: invalid token d = Data(11, 11, 11) d = Data(12, 04, 19) File "", line 1 d = Data(12, 04, 19) ^ SyntaxError: invalid token d = Data(11, 11, 19) d.formatada() 11/11/19

Ou seja, pq ele não aceitou 12, 04, 19 e aceitou 11, 11, 19?????

4 respostas

Olá Rafael, poderia por gentileza colocar seu código para podermos dar uma olhada? Assim ficará mais fácil de achar o problema.

class Data:

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

def formatada(self):
    print("{}/{}/{}".format(self.dia, self.mes, self.ano))
solução!

O problema é que você está enviando como parâmetro o 04, isso o python não aceita. Você deveria mandar como parâmetro para Data como Data(12, 4, 19). Se você quiser insistir em que tenha um 0 na frente do 4 na hora da formatação você pode usar a seguinte solução:

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

    def formata(self):
        print(f"{self.dia}/", end="")
        print(f"0{self.mes}" if self.mes < 10 else self.mes, end="/")
        print(f"{self.ano}")

Usando essa lógica ele só vai adicionar o 0 na frente do mês se o número dele for menor que 10. Dá para fazer a mesma coisa com o dia se vc quiser até.

Obrigado Lucas. Entendido.

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