Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
12
respostas

Resolução

class Data:

    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano
#ignorar o pedaço do código abaixo, leia as respostas 
    def le_data(self):
        self.data = ""
#----------------------------------------

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

----------------------------------------------------------------------------------

from datas import Data
d = Data(28, 8, 2022)
d.formatada()``
12 respostas
solução!

Muito bom!

Obrigado por compartilhar seu código com a gente, aprendo muito vendo o trabalho dos outros. Parabéns pela sua dedicação.

Abraços e bons estudos!!

Obrigaaaadooooo!!!!!!

Olá, fiz o código parecido com o seu porem não usei:

def le_data(self): self.data = ''

e o código funcionou normalmente, poderia me explicar melhor esse código por favor?

Também nao entendi o pq: def le_data(self): self.data = ''

Tentei rodar o código e para mim aparece que não existe o módulos "Datas". Poderia me ajudar?

Galera, resolvi da seguinte forma. Claro que estava empacado e li o código do amigo Nícolas, mas alterei conforme meu conhecimento, até então:

Apenas uma observação para a formatação em str que utilizei uma função nova do python que faz a mesma coisa que a ".format()" para preencher {}. Ao inves de introduzir ".format()" no final da string, basta colocar um "f" no começo, como descrito no código, e preencher o {} com a variável que você pretende formatar. Caso prefira usar a forma apresentada até então no curso, basta alterar.

Código:

class Data:

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

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

Input no console:

from datas import Data
datas = Data(28,8,2022)
datas.formatada()

Um detalhe que reparei no console do python é que, ao digitar "datas = Data(28,8,2022)", assim que você abre parentes apos "Data" o programa lhe informa qual a posição esta sendo preenchida (dia, mes e ano). Quando não estava aparecendo, era um indicativo de que algo estava errado no meu código. No meu caso, fiquei empacado pelo fato de ter digitado rapido a função construtora init , onde ficou escrito int e não reparei. Como possui outra função com essa termologia, o pycharm coloriu e não visualisei o erro rapidamente.

Um detalhe muito bom, na hora que estamos utilizando o console python no pycharm, é um quadro a direita que resume tudo que estamos incluindo linha por linha:

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

Peço desculpas se compliquei em alguma parte do processo.

Galera kkkkk foi vacilo meu... Eu estava fazendo outro código e acabei misturando... Desculpa!!! E obrigado pela explicação Rafael.

Esse era o outro código:

class Data:

    def le_data(self):
        self.data = input("Insira a data: ")

    def imprime_data(self):
        print(self.data)

d = Data()
d.le_data()
d.imprime_data()

Abraços,

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Alguém consegue me dizer o pq o meu está aparecendo erro no módulo datas?

Vera, lendo rapidamente o seu codigo no print da imagem, pude reparar que nome do arquivo .py que voce criou se chama "Data". Se voce copiou o codigo que passei acima, vai dar erro, pois nomeei o arquivo "datas.py" igual o professor Nico.

Acredito que o Pycharm nao saberá identificar a importação na hora que você chamar o comando que ficaria "from Data import Data".

Inclusive o erro descrito no seu pycharm aponta para isso quando diz "No module named Data".

Sendo assim, minhas sugestões sao as seguintes:

1- Clique com o botao direito no projeto e renomeie seu projeto .py para "datas".

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

ou

2- Altere o codigo que passei substituindo pelo nome do seu arquivo .py

Oi, meu codigo esta correto mas continua dando erro. :/ Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Erick, pelo que li do código de erro no seu console, me parece código de local de pasta. tentou reiniciar o console ou refazer os códigos após fechar e abrir o programa novamente?

Parabéns Rafael, está fazendo um ótimo trabalho.

Abraços,