2
respostas

Desafio Opcional

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))
d = Data(21,11,2007)
d.formatada()
2 respostas

Boa Luciano, é isso mesmo!

Como alternativa tem a nova sintaxe de formatação de strings do python:

print(f'{self.dia}/{self.mes}/{self.ano}')

Bom dia Luciano,

Essa é a resolução, parabéns!

Para complementar mais o seu código, recomendo que você utilize a seguinte notação:

    def formatada(self):
        print("{:02}/{:02}/{:02}".format(self.dia, self.mes, self.ano))

O que essa nomenclatura dentro das chaves querem dizer?

Bom, no exemplo passado em aula, você não encontra problemas em imprimir um zero a esquerda (no caso de ser dia 09 ou mês 08). Porém, se você rodar o seu código para a data 06/08/2020 verá que ele retornará o seguinte:

6/8/2020

Apesar de não estar errado, podemos melhorá-lo, colocando dentro das chaves o numero dois

print("{:2}/{:2}/{:2}".format(self.dia, self.mes, self.ano))

o código irá entender que cada número deverá ter, no mínimo dois espaços a serem preenchidos. Assim o código passará a retornar

6/ 8/2020

para completar, adicione um 0 antes de cada 2(como demonstrado no inicio) para o programa entender que os espaços não utilizados deverão ser preenchidos com 0:

06/08/2020

Espero ter ajudado :)