2016-04-11 43 views
-4

o online bilgi hakkında {:} bulmak çok zor demek:gelmez Ne {: 02d} Aşağıda bazı kod gördüm Python

def dateformat(date): 
    day, month, year=date.split('/') 
    return "{:4d}{:02d}{:02d}".format(int(year),int(month),int(day)) 

Bir tür içinde bu formatta 0 lider dolduruyor biliyorum ama '02' ve 'd'{:02d}'da ne yapar?

+4

['str.format()' dokümantasyonunu] arıyorsunuz (https://docs.python.org/2/library/stdtypes.html#str.format) . –

+0

Biçim dizileriyle ilgili belgeler için [pyformat.info] (https://pyformat.info/#number) adresine bakın. Muhtemelen bir sürü başka kaynak var. – Avish

+0

Re: '{:}', artık biçimlendirmenin yapılması gerekmiyorsa, '' hello {} '. Format ("world") ' – cdarke

cevap

4

str.format() documentation ürününü incelemektesiniz. Özellikle, 02d bölümü Format Specification Mini-Language belgelenmiştir.

>>> 'No digits: {:02d}, 1 digit: {:02d}, 2: {:02d}, 3: {:02d}'.format(0, 7, 42, 151) 
'No digits: 00, 1 digit: 07, 2: 42, 3: 151' 

belgelerine:

02d

( 0 gelen), sol taraftaki sıfır doldurma ile minimum genişliğinden 2 ( 2) içindeki bir alana bir tam sayı ( d), biçimleri
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type] 

[...]

width, minimum alan genişliğini tanımlayan bir ondalık tamsayıdır. açık bir hizalama verildiğinde

, sıfır ile genişliği alan önceki ('0') karakteri oturum uyumlu sayısal türleri için sıfır doldurma sağlar. Bu, '=' hizalama türüne sahip '0' doldurma karakteriyle eşdeğerdir.

[...]

Son olarak tip veriler sunulmalıdır belirler. [...] mevcut tamsayı sunum türleri şunlardır:

[...]

'd'
Ondalık tamsayı. 10 numaralı tabandaki sayıyı çıkarır.

+0

diyelim ki '2014' rakamına sahibim ve üç tane '0000000' olmak için doğru dolgu ile istiyorum, nasıl yapabilirim {:} ile yap? – lxdthriller

+0

@lxdthriller: '0 <7d' işlevini kullanın, bu nedenle * sol * en az 7 karakterlik bir genişlikte ve sıfırlardan oluşan bir alanda hizalayın. –