Я не получаю, почему двоеточие сдвинутый влево во второй разстрока форматирования
>>> print '%5s' %':'
:
>>> print '%5s' %':' '%2s' %':'
: :
Помоги мне это пожалуйста
Я не получаю, почему двоеточие сдвинутый влево во второй разстрока форматирования
>>> print '%5s' %':'
:
>>> print '%5s' %':' '%2s' %':'
: :
Помоги мне это пожалуйста
В Python, сопоставляются строки сцепляются:
>>> t = 'a' 'bcd'
>>> t
'abcd'
Так что в вашем втором примере, это эквивалентно:
>>> print '%5s' % ':%2s' % ':'
, которые по правилам предшествования для оператора Пайтона%, является:
>>> print ('%5s' % ':%2s') % ':'
или
>>> print ' :%2s' % ':'
: :
Что вы пытаетесь сделать?
>>> print '%5s' % ':'
:
>>> print '%5s%2s' % (':', ':')
: :
Вы можете достичь того, чего хотите, смешав их оба в одно форматирование строки.
Но вы остановились на перфомансе: для первоначального утверждения, вероятно, понадобилось «,», чтобы это не происходило. –
@ S.Lott: и это добавит мягкое пространство :) – SilentGhost
Или вместо вставки запятой и добавления мягкого пространства вы можете вставить «+» между первым двоеточием и «% 2s» и получить, вероятно, результат (в словах, потому что я не ожидаю, что это придет к нашему правилу любым другим способом) [четыре пробела] [двоеточие] [одно место] [двоеточие]. –