Reputation:
it's very hard to find information about {:}
online
I saw some code below:
def dateformat(date):
day, month, year=date.split('/')
return "{:4d}{:02d}{:02d}".format(int(year),int(month),int(day))
I kinda of know it is filling leading 0
in the format, but I don't know what do '02'
and 'd'
in {:02d}
do?
Upvotes: 26
Views: 97004
Reputation: 1123640
You are looking for the str.format()
documentation. Specifically, the 02d
part is documented in the Format Specification Mini-Language.
02d
formats an integer (d
) to a field of minimum width 2 (2
), with zero-padding on the left (leading 0
):
>>> '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'
From the documentation:
format_spec ::= [[fill]align][sign][z][#][0][width][grouping_option][.precision][type]
[...]
width is a decimal integer defining the minimum total field width, including any prefixes, separators, and other formatting characters. If not specified, then the field width will be determined by the content.
When no explicit alignment is given, preceding the width field by a zero (
'0'
) character enables sign-aware zero-padding for numeric types. This is equivalent to a fill character of'0'
with an alignment type of'='
.[...]
Finally, the type determines how the data should be presented. [...] The available integer presentation types are:
[...]
'd'
Decimal Integer. Outputs the number in base 10.
The same formats apply to formatted string literals (f-strings, f"..."
).
Upvotes: 39
Reputation: 831
As for your information :
format(1, '02')
'01'
format(100, '02')
'100'
'{:02}'.format(1)
'01'
'{:02}'.format(100)
'100'
However, d in {:02d} means number in base 10
Upvotes: 3