3
respostas

Desafio realizado!


class Data:

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

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


if __name__ == '__main__':

    d = Data(21,11,2007)
    d.formatada()
3 respostas

Olá Paulo, tudo bem com você?

Meus parabéns pelo seu empenho, fico feliz que tenha compartilhado o seu desenvolvimento com a comunidade do fórum Alura.

Aproveitando essa oportunidade deixou uma dica para implementação do método formatada, através da formatação de string podemos manipular os valores do dia e mês para sejam imprimidos em um padrão determinado, para que isso seja possível os valores fornecidos no momento da criação do objeto data deverão ser do tipo int, deixo abaixo um exemplo:

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

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/7/2007, 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):
        data = f'{self.dia:02d}/{self.mes:02d}/{self.ano}'
        print(data)


if __name__ == '__main__':

    d = Data(9, 7, 2007)
    d.formatada()


Resultado

09/07/2007

Para saber um pouco mais sobre a formatação de string recomendo a leitura do seguinte artigo que irá abordar com mais detalhes sobre as possibilidades de formatação de string:

O artigo está em inglês caso tenha dificuldades com o idioma, recomendo o uso do tradutor que existe no navegador.

Continue assim sempre usando o fórum, seja para compartilhar conhecimentos ou para tirar dúvidas.

Fico à disposição.

Abraços e bons estudos!

Gostaria de saber se teria como eu formatar o ano com que eu pudesse declarar com quatro dígitos (1994) e imprimir somente os dois últimos dígitos (94)

Matheus, a solução que pensei pra sua questão foi a seguinte:

def formatada(self):
    ultimo_digito = str(self.ano)[-1]
    penultimo_digito = str(self.ano)[-2]
    ano_cortado = int(penultimo_digito+ultimo_digito)
    print("{:02d}/{:02d}/{:02d}".format(self.dia, self.mes, ano_cortado), end="\n")

Não achei uma função para acessar cada dígito de um int, então converto self.ano para string para fazer isso.

A variável ultimo_digito recebe o último caractere do ano convertido para string.

A variável penultimo_digito recebe o penúltimo caractere do ano convertido para string.

A variável ano_cortado recebe a concatenação de penultimo_digito e último digito já convertida para int.

Tá funcionando.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software