2012-05-07 2 views
2

Пожалуйста, поставьте меня из моих страданий. Следующий пример, кажется, использует y дважды, а не y, а затем m.Формат номера на Python путаница

>>> m=8 
>>> y=11 
>>> print '20{0:02d}{0:02d}01'.format(y, m) 
20111101 

Я прошел через столько же документации, как я могу, но не могу понять, что было бы относительно просто со старой процедуры:

>>> print '20%02d%02d01' % (y, m) 
20110801 

Если кто-то может объяснить, где я Я ошибаюсь, я был бы очень благодарен.

+1

''20 {0: 02d} {0: 02d} 01'' должно быть' '20 {0: 02d} {1: 02d} 01'' –

+2

Еще проще: ''20 {: 02d} {: 02d} 01'' – akaRem

ответ

6

Это будет делать то, что вы хотите:

print '20{0:02d}{1:02d}01'.format(y, m) 

Вы ссылаетесь на первый аргумент дважды.

+0

Doh! Благодарю. Я читал документы Python снова и снова, но все же пропустил это. –

+0

был там, сделал это :-) – Levon

+1

Вы можете оставить 0 и 1 индексы (пусть все двоеточия). Они нужны только вам, если вы хотите повторно использовать аргументы несколько раз, или если вы хотите их изменить. – yak

3
>>> print '20{0:02d}{1:02d}01'.format(y, m) 

Вам необходимо использовать следующий arg в списке arg.

Смежные вопросы