Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que sumiu o 0(zero) na hora de imprimir?

Eis meu código:

class Data(object):

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

    def imprimir(self):
        print ('%s/%s/%s' % (self.dia, self.mes, self.ano))

Eis o mistério do zero que sumiu:

>>> from models import Data
>>> d = Data(30,**06**,2017)
>>> d.imprimir()
30/**6**/2017
>>>

Alguém sabe explicar? Como os números estão como strings, eu achei estranho o zero sumir. Se fosse integer ou float eu até entenderia já que zero a esquerda não tem valor.

1 resposta
solução!

E aí, Vitor, tudo certinho, cara? =)

Eu não sei ao certo o porquê do zero estar sumindo. Eu tinha feito uma pesquisa sobre isso e caí nessa thread do Stack Overflow... Basicamente, o que foi respondido, é que a ideia do "zero à esquerda" é uma ideia visual ao invés de numérica, pois você pode adicionar quantos zeros você quiser que o número não será alterado.

Imagino que o compilador do Python recebe esse valor como inteiro, inicialmente, para somente depois fazer a conversão para String... Mas, infelizmente, é só um "achismo" meu, não tenho certeza.

De qualquer forma, se você quiser imprimir um número com um ou mais zeros, você pode fazer da seguinte forma:

print "%02d" % (variavel)

Dessa forma, o valor armazenado em variavel terá duas casas, imprimindo assim um zero. Se quiser imprimir com dois zeros, basta alterar a quantidade de casas:

print "%03d" % (variavel)

E assim por diante, sacou? =)

Espero ter ajudado, mas qualquer dúvida que possa ter restando não hesite em postar por aqui, no fórum, para que possamos ajudá-lo, beleza? =D

Abraço e bons estudos,

Fábio