4-5如何對字符串進行左, 右, 居中對齊


每一個字符串的寬度不同,導致打印輸出時的格式不像上圖中那么工整。

將上圖中的字典中的每個鍵的字符串寬度調整成相同的值,就可以像上圖那樣輸出。

方法一:使用字符串的str.ljust(),str.rjust(),str.center()進行左右居中對齊

>>> help(str.ljust)
Help on method_descriptor:

ljust(...)
    S.ljust(width[, fillchar]) -> string
    
    Return S left-justified in a string of length width. Padding is
done using the specified fill character (default is a space).
help(str.ljust)

第一個參數是,字符串S的寬度,第二個參數是,以此字符串作為填充

>>> s = 'abc'
>>> s.ljust(20)
'abc     

(1)如上例使用左對齊,使用空格補齊字符串

>>> s.ljust(20,'+')
'abc+++++++++++++++++'

(2)右對齊,在左面填充

>>> s.rjust(20)
'                 abc'
>>> len(s.rjust(20))
20

(3)居中對齊

>>> s.center(20)
'        abc         '

方法二:使用format方法

>>> help(format)
Help on built-in function format in module __builtin__:

format(...)
    format(value[, format_spec]) -> string
    
    Returns value.__format__(format_spec)
format_spec defaults to ""
help(format)

第一個參數是要格式的字符串,第二個參數是指定的規則

(1)左對齊 使用’<20’

>>> format(s,'<20')
'abc     

(2)右對齊,使用‘>20’

>>> format(s,'>20')
'                 abc'

(3)居中,使用‘^20’

>>> format(s,'^20')
'        abc         '

 

本例實現方法:

(1)生成字典d

>>> d = {'lodDist':100.0, 'smallcull':0.04,'Distcull':500,"trilinear":40,"farclip":477}
>>> d
{'smallcull': 0.04, 'farclip': 477, 'lodDist': 100.0, 'Distcull': 500, 'trilinear': 40}

(2)獲取字典的所有鍵,組成列表

 

>>> d.keys()
['smallcull', 'farclip', 'lodDist', 'Distcull', 'trilinear']

 

(3)計算每一個鍵值的字符串寬度

>>> map(len,d.keys())
[9, 7, 7, 8, 9]

(4)計算字典所有的鍵值字符串寬度的最大值

>>> m = max(map(len,d.keys()))
>>> m
9

(5)格式化輸出

        a、py2的方式       

>>> for x in d:
    print x.ljust(m),':',d[x]

    
smallcull : 0.04
farclip   : 477
lodDist   : 100.0
Distcull  : 500
trilinear : 40

     

       b、py2和py3都可以的方式

>>> for x in d:
    print("%s%s%s"%(x.ljust(m),':',d[x]))

    
smallcull:0.04
farclip  :477
lodDist  :100.0
Distcull :500
trilinear:40

    此方式注意,類似於C語言的格式化輸出,但字符串和格式化部分使用“%”分隔(C語言使用“,”分隔)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM