1
resposta

Realizei o desafio opcional

Segue o código:

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á Eric, tudo bem com você?

Meus parabéns pela implementação do código, fico feliz que tenha compartilhado com a comunidade do fórum Alura.

No código apresentado possui a necessidade de mudança de indentação dos métodos __init__ e formatada, da forma apresentada os métodos estão fora da classe Data, caso o código seja executado será gerado um erro de indentação (IndentationError). Basta tabular os métodos e os seus códigos uma vez para colocá-los dentro da classe.

Deixo agora uma dica de implementação, do método formatada(self), a manipulação dos valores do dia e mês para que sejam fornecidos em um padrão determinado, para isso devemos inserir nas data valores do tipo int, deixo abaixo um exemplo:

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

No exemplo acima :02d formata um inteiro (d) para um campo de largura mínima 2 (2), com preenchimento de zero à esquerda, quando a largura mínima de dois caracteres não for atendida. Então, caso passássemos a data 9/6/2022, seria preenchido com zeros a esquerda, como mostro abaixo:

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

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


obj_data = Data(9, 6, 2022)
obj_data.formatada()

Resultado

09/06/2022

Para saber um pouco mais sobre a formatação de sting recomendo a leitura do seguinte artigo:

Neste segundo artigo será apresentado informações sobre a indentação no python.

Os artigos estão em inglês caso tenha dificuldades com o idioma, recomendo que use o tradutor que existe no navegador.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.