1
resposta

Implementando Métodos - Desafio Opcional

Consegui cumprir o desafio com o seguinte código. As duas últimas linhas que estão comentadas são para testar o código executando o programa direto pelo editar o código, sem precisar abrir o terminal do Python:

class Data:
    def __init__(self, dia, mes, ano):
        print("Objeto adicionado com sucesso {}".format(self))
        self.dia = dia
        self.mes = mes
        self.ano = ano

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

# data = Data('07', '04', '2022')
# data.formata_data()

Apenas uma observação, eu pensando que talvez a data pudesse ser inserida por um usuário que não sabe que as aspas são necessárias, fiquei um tempo tentando descobrir como inserir uma data iniciada com 0 sem precisar inserir como string na criação do objeto (com as aspas), mas descobri, conforme respostas em um outro tópico por aqui, que isso é uma limitação do próprio Python.

Portanto, se a gente considerasse que a data inserida é um dado inserido por usuário, precisaria trata-la antes de criar o objeto para passar os parâmetros.

Acho que seria interessante dar essa dica no enunciado do desafio.

1 resposta

Existe uma sintaxe especial para formatar numeros dentro dos placeholders {}. Vc pode usar {:02d}.

  • " : " aponta que será usada uma sintaxe de formatação.
  • "d" significa aponta que é um digito
  • 02 significa duas casas com zero.
    • Se seu numero tiver menos digitos (isto é, numero de 0 a 9) ele preenche os zeros à esqueda para que fiquem duas casas.
    • Se seu número tiver mais dígitos não vai fazer diferença

Exemplos:

  • print("{:02d}".format(1))
  • print("{:02d}".format(12))
  • print("{:02d}".format(123))