好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

12. 对字符串进行左、右、居中对齐

例如,某字典存储了一系列属性值:

{
    "lodDist": 100.0,
    "SmallCull": 0.04,
    "DostCull": 500.0,
    "trilinear": 40,
    "farclip": 477}

要求:在程序中,以key的最大长度对齐,格式工整地将其内容输出:

lodDist   : 100.0
SmallCull : 0.04
DostCull  : 500.0
trilinear : 40
farclip   : 477

解决方案:

使用字符串的 ljust() 、 rjust() 、 center() 方法进行左、右、居中对齐;

使用内置函数 format() ,传递类似 <20 、 >20 、 ^20 参数完成同样功能。

对于字符串的 ljust() 、 rjust() 、 center() 方法:
s = ''s.ljust(width, fillchar)

ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

width 表示指定的字符串长度; fillchar 表示填充字符,默认为空格,填充字符必须恰好只有一个字符长。

rjust() 、 center() 方法与 ljust() 方法类似。

对于内置函数 format() :
s = 'abc'print(format(s, '*10'))print(format(-123, '0=+10'))abc*******              #结果*********5-000000123

format() 函数用于格式化字符串, format() 函数调用的是 __format__() 方法。

^ 、 < 、 > 分别是居中、左对齐、右对齐,前面跟填充字符,后面跟宽度; = 表示正负符号左对齐; + 表示总输出正负符号。

方案1示例:
d = {
    "lodDist": 100.0,
    "SmallCull": 0.04,
    "DostCull": 500.0,
    "trilinear": 40,
    "farclip": 477}w = max(map(len, d.keys()))for k,v in d.items():
    print(k.ljust(w), ':', v)
    lodDist   : 100.0               #结果SmallCull : 0.04DostCull  : 500.0trilinear : 40farclip   : 477

方案2示例:
d = {
    "lodDist": 100.0,
    "SmallCull": 0.04,
    "DostCull": 500.0,
    "trilinear": 40,
    "farclip": 477}w = str(max(map(len, d.keys())))for k,v in d.items():
    print(format(k, '<' + w), ':', v)
    lodDist   : 100.0               #结果SmallCull : 0.04DostCull  : 500.0trilinear : 40farclip   : 477

注意, format() 中不能直接写成 format(k, '<w') ,会无法识别变量w。

查看更多关于12. 对字符串进行左、右、居中对齐的详细内容...

  阅读:46次