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

Implementado

class Data:

    def __init__(self, dia, mes, ano):
        print("Construindo o objeto {}".format(self))
        self.dia = dia
        self.mes = mes
        self.ano = ano

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

Consegui implementar, mas gostaria de saber se há alguma outra forma melhor de obter a saída do print, usando o format.

2 respostas
solução!

Oi Guilherme! Tudo certinho?

Existe sim!

Suponhamos que o usuário crie o seguinte objeto:

data1 = Data(1,2,2020)
data1.formatada()

Isso irá resultar em uma data com o seguinte formato 1/2/2020. O que não é uma saída tão bem apresentada.

Para melhorarmos isso, podemos fazer o seguinte:

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

Esse :02d vai fazer o seguinte: caso o número inteiro informado pelo usuário tenha apenas um dígito, ele automaticamente irá acrescentar um zero antes desse dígito, portanto, a data resultante do código exemplo acima, seria a seguinte: 01/02/2020.

Para deixar seu print ainda menor, podemos substituir o método format pelo f, deixando seu código assim:

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

Essa maneira é conhecida como f-string. E esse print irá apresentar o mesmo resultado mostrado anteriormente: 01/02/2020.

Espero ter ajudado :)

Qualquer dúvida você me avisa, estarei por aqui.

Bons estudos!

Tudo certo, sim.

Me ajudou bastante. Muito obrigado pela atenção!

Abraços :)