1
resposta

Desafio Opcional - Data

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))
1 resposta

Olá Rodrigo, eu também consegui fazer este desafio, mas eu fiz de uma forma um pouco diferente:

class Data:

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

def formatada(self):
    print(f'{self.dia:02}/{self.mes:02}/{self.ano')

Veja que eu usei aspas simples pois eu prefiro. E s oinvés de usar a função format(), eu coloquei entre as chaves os atributos, mas isso so serve se você tiver da função 3.6 em diante do Python.

Você pode ver que quando eu crio um objeto com apenas 1 caracter (8) ele coloca um zero atrás, e quando crio um com 2 caracteres ele não coloca nada atras, por exemplo:

data = Data(23, 8, 2007)
data.formatada()

O console irá me retornar: 23/08/2007

data2 = Data(26, 12, 2007)
data2.formatada()

O console irá me retornar: 26/12/2007

Isto acontece porque eu informei no print() da função formatada que o número tem 2 caracteres, se tiver apenas 1, completa com 0 (02), também poderia fazer com outros números, por exemplo:

03 - o número tem 3 caracteres, se tiver menos completa com 0

04 - o número tem 4 caracteres, se tiver menos completa com 0

...

E tem muitas outras possibilidades, poderia por exemplo colocar uma casa decimal:

02.2f - o número tem dois caracteres, se tiver menos completa com 0 e coloque duas casas decimais no final.

...

Espero ter ajudado! Abraços.