2.13 字符串對(duì)齊

2018-02-24 15:26 更新

問(wèn)題

你想通過(guò)某種對(duì)齊方式來(lái)格式化字符串

解決方案

對(duì)于基本的字符串對(duì)齊操作,可以使用字符串的 ljust() , rjust()center() 方法。比如:

>>> text = 'Hello World'
>>> text.ljust(20)
'Hello World         '
>>> text.rjust(20)
'         Hello World'
>>> text.center(20)
'    Hello World     '
>>>

所有這些方法都能接受一個(gè)可選的填充字符。比如:

>>> text.rjust(20,'=')
'=========Hello World'
>>> text.center(20,'*')
'****Hello World*****'
>>>

函數(shù) format() 同樣可以用來(lái)很容易的對(duì)齊字符串。你要做的就是使用<,>或者^(guò)字符后面緊跟一個(gè)指定的寬度。比如:

>>> format(text, '>20')
'         Hello World'
>>> format(text, '<20')
'Hello World         '
>>> format(text, '^20')
'    Hello World     '
>>>

如果你想指定一個(gè)非空格的填充字符,將它寫到對(duì)齊字符的前面即可:

>>> format(text, '=>20s')
'=========Hello World'
>>> format(text, '*^20s')
'****Hello World*****'
>>>

當(dāng)格式化多個(gè)值的時(shí)候,這些格式代碼也可以被用在 format() 方法中。比如:

>>> '{:>10s} {:>10s}'.format('Hello', 'World')
'     Hello      World'
>>>

format() 函數(shù)的一個(gè)好處是它不僅適用于字符串。它可以用來(lái)格式化任何值,使得它非常的通用。比如,你可以用它來(lái)格式化數(shù)字:

>>> x = 1.2345
>>> format(x, '>10')
'    1.2345'
>>> format(x, '^10.2f')
'   1.23   '
>>>

討論

在老的代碼中,你經(jīng)常會(huì)看到被用來(lái)格式化文本的%操作符。比如:

>>> '%-20s' % text
'Hello World         '
>>> '%20s' % text
'         Hello World'
>>>

但是,在新版本代碼中,你應(yīng)該優(yōu)先選擇 format() 函數(shù)或者方法。format() 要比%操作符的功能更為強(qiáng)大。并且 format() 也比使用 ljust() , rjust()center() 方法更通用,因?yàn)樗梢杂脕?lái)格式化任意對(duì)象,而不僅僅是字符串。

如果想要完全了解 format() 函數(shù)的有用特性,請(qǐng)參考 在線Python文檔

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)