Solucionado (ver solução)
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,