2
respostas

Minha resposta + 1 duvida no final

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

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

Python console

from datas import Data

d1 = Data(6,4,1986)

d1.formata_data()

06/04/1986

Se eu informar 06, 04 em dia e mês da erro, parece que ele não aceita o zero em formato de numero, apenas se eu mando no formato de string: "06", "04". Por que isso acontece?

2 respostas

Oi Marcelo, beleza?

No seu print, a notação {:02d} é como uma função que acrescenta o dígito Zero na frente do 6, transformando em 06 (uma string). Como entrada, precisa de um valor numérico.

Também funciona assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Nesse caso, como você quer entrar com uma string, você poderia converter a string em numero, por exemplo um inteiro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado, bons estudos!

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

    def formata_data(self):
        print(f"{self.dia:02d}/{self.mes:02d}/{self.ano:04d}")

data = Data('01','04','2022')

data.formata_data()