8
respostas

Desafio opcional - data.py

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

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

Olá Pessoal, fiz um código semelhante a este de Olins Jacques. Porém está ocorrendo o seguinte erro:

d2 = Data(22, 09, 2222)
  File "<ipython-input-16-4e10361e9bb8>", line 1
    d2 = Data(22, 09, 2222)
                  ^
SyntaxError: invalid token

Quando eu referencio o mês com 10, 11 ou 12, o interpretador aceita. Mas, quando referencio o mês com numerais menores que 10 ocorre o erro acima. Alguém poderia ajudar?

Ronald, boa noite. Inteiros que iniciam com 0 (ex:01,02,03...09) não são aceitos como válidos. Você pode passar como string ("09") ou simplismente, informar o numero corretamente sem 0 (zeros) a esquerda, ou seja: 1,2,3,4...9.

d2 = Data(22, "09", 2222)

ou

d2 = Data(22, 9, 2222)

Bom dia, a todos. O método construtor que fiz é semelhante ao que ja foi executado neste fórum.

def formatada (self):
print ("%02d" % (dia,), "/ %02d" % (mes,), "/ %02d" % (ano,))

O código usa a formatação de string, e não apresenta problemas na hora de usar números menores que 10.

Olins, valeu! Não tentei colocar sem o '0' de fato. Funcionou! Mas deve ter uma forma de aceitar o '0', vou dar uma pesquisada. Se eu descobrir como, retorno aqui!

Fabio, talvez sua versão do spyder ou python seja mais nova que a minha. Pq, como coloquei acima, estava dando erro.

Algumas vezes, errando se aprende mais do que no acerto.

Valeu rapazeada!

Show Ronald estamos todos no processo de aprendizagem, mas se achar melhor pode dar uma olhada neste artigo

Exibir um número com zeros à esquerda em Python

Tem uns exemplos bacanas lá

Implementei deste modo:

class Data:

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

def formatadata(self):
    return "{:02d}/{:02d}/{}".format(self.dia,self.mes,self.ano)

data = Data("1","07","01971")

print(data.formatadata())

Implementei deste modo:

class Data:

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

def formatada(self):
  print('{0}/{1}/{2}'.format(self.dia,self.mes,self.ano))

d = Data("21","09","2007") d.formatada()

Boa noite. Segue o que implementei:

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

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

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