例如,我可以這樣做:Python - 使用格式字符串長度變量而不是固定的嗎?
"%.2s" % ('aaa')
'aa'
或
"%.1s" % ('aaa')
'a'
但我怎麼能作出這樣的部分好像.2
變量,這樣我就可以通過任何數量的,它會相應的格式,就像如果我會通過類似:
"%.%ss %" (1, 'aaa') # Pseudo code
'a'
例如,我可以這樣做:Python - 使用格式字符串長度變量而不是固定的嗎?
"%.2s" % ('aaa')
'aa'
或
"%.1s" % ('aaa')
'a'
但我怎麼能作出這樣的部分好像.2
變量,這樣我就可以通過任何數量的,它會相應的格式,就像如果我會通過類似:
"%.%ss %" (1, 'aaa') # Pseudo code
'a'
指定寬度爲*
和實際寬度將從下一個位置參數採取:
"%.*s" % (1, 'aaa')
的str.format()
method更靈活的是,你可以插值任何參數,而不僅僅是寬度:
"{:.{width}s}".format('aaa', width=1)
演示:
>>> "%.*s" % (1, 'aaa')
'a'
>>> "%.*s" % (2, 'aaa')
'aa'
>>> "{:.{width}s}".format('aaa', width=1)
'a'
>>> "{:.{width}s}".format('aaa', width=2)
'aa'
額外的佔位符可用於任何元素組成的格式規範:
>>> "{:{align}{width}s}".format('aaa', align='<', width=4)
'aaa '
>>> "{:{align}{width}s}".format('aaa', align='>', width=4)
' aaa'
不錯。謝謝。兩種解決方案都很好,儘管在這種情況下第一個解決方案看起來更具可讀性(至少對我而言)。 – Andrius
使用format如下:
>>> outputNumber=2
>>> '{:.{}}'.format('MyString', outputNumber)
'My'
>>> outputNumber=5
>>> '{:.{}}'.format('MyString', outputNumber)
'MyStr'
>>>
竟被我看看了的String.format方法:https://docs.python.org/2/library/ string.html#format-specification-mini-language – Netwave