2009-04-28 149 views
0

我沒有得到爲什麼結腸左移在第二次字符串格式化

>>> print '%5s' %':' 
    : 
>>> print '%5s' %':' '%2s' %':' 
: : 

幫我出這個請

回答

9

在Python,並列字符串連:

>>> t = 'a' 'bcd' 
>>> t 
'abcd' 

所以在你的第二個例子,它相當於:

>>> print '%5s' % ':%2s' % ':' 

它通過對Python的%運算符的優先級規則是:

>>> print ('%5s' % ':%2s') % ':' 

>>> print ' :%2s' % ':' 
: : 
+0

但是你沒有留下這句話:最初的陳述可能需要一個「,」來防止這種情況發生。 – 2009-04-28 10:49:50

2

你到底想幹什麼?

>>> print '%5s' % ':' 
    : 
>>> print '%5s%2s' % (':', ':') 
    : : 

你可以通過將它們混合成單個字符串格式化表達式來實現你想要的。