Python學習之format函數的使用
阿新 • • 發佈:2018-01-12
elf import 輸入 setup 函數 位數 ron code 括號 python從2.6開始支持format,新的更加容易讀懂的字符串格式化方法,
從原來的% 模式變成新的可讀性更強的
type = ‘tree‘
kinds = [{‘name‘: ‘oak‘}, {‘name‘: ‘maple‘}]
‘{p.type}: {p.kinds[0][name]}‘.format(p=Plant()) 輸出:
分類舉例說明:
Output
- 花括號聲明{}、用於渲染前的參數引用聲明, 花括號裏可以用數字代表引用參數的序號, 或者 變量名直接引用。
- 從format參數引入的變量名 、
- 冒號:、
- 字符位數聲明、
- 空白自動填補符 的聲明
- 千分位的聲明
- 變量類型的聲明: 字符串s、數字d、浮點數f
- 對齊方向符號 < ^ >
- 屬性訪問符中括號 ?
- 使用驚嘆號!後接a 、r、 s,聲明 是使用何種模式, acsii模式、引用__repr__ 或 __str__
- 增加類魔法函數__format__(self, format) , 可以根據format前的字符串格式來定制不同的顯示, 如: ’{:xxxx}’ 此時xxxx會作為參數傳入__format__函數中。
- 如: 千分位、浮點數、填充字符、對齊的組合使用:
- 復雜數據格式化
23 42
- 復雜數據格式化:
type = ‘tree‘
kinds = [{‘name‘: ‘oak‘}, {‘name‘: ‘maple‘}]
‘{p.type}: {p.kinds[0][name]}‘.format(p=Plant()) 輸出:
tree: oak
- 花括號聲明{}、用於渲染前的參數引用聲明, 花括號裏可以用數字代表引用參數的序號, 或者 變量名直接引用。
Output
two one
Setup
data = {‘first‘: ‘Hodor‘, ‘last‘: ‘Hodor!‘}
Old
‘%(first)s %(last)s‘ % data
New
‘{first} {last}‘.format(**data)
Output
Hodor Hodor!
- 從format參數引入的變量名 、
- 冒號:、字符位數聲明、空白自動填補符 的聲明、千分位的聲明、變量類型的聲明: 字符串s、數字d、浮點數f 、對齊方向符號 < ^ >
‘{:.5}‘.format(‘xylophone‘)
Output
xylop
‘{:^10}‘.format(‘test‘)
Output
test
‘{:.{}}‘.format(‘xylophone‘, 7)
Output
xylopho
‘{:4d}‘.format(42)
Output
42
‘{:06.2f}‘.format(3.141592653589793)
Output
003.14
‘{:+d}‘.format(42)
Output
+42
千分位、浮點數、填充字符、對齊的組合使用:
輸入: ‘{:>18,.2f}‘.format(70305084.0) # :冒號+空白填充+右對齊+固定寬度18+浮點精度.2+浮點數聲明f
輸出:‘ 70,305,084.00‘
- 屬性訪問符中括號 ?
Setup
person = {‘first‘: ‘Jean-Luc‘, ‘last‘: ‘Picard‘}
New
‘{p[first]} {p[last]}‘.format(p=person)
Output
Jean-Luc Picard
Setup
data = [4, 8, 15, 16, 23, 42]
New
‘{d[4]} {d[5]}‘.format(d=data)
Output
23 42
Setup
class Plant(object): type = ‘tree‘ kinds = [{‘name‘: ‘oak‘}, {‘name‘: ‘maple‘}]
New
‘{p.type}: {p.kinds[0][name]}‘.format(p=Plant())
Output
tree: oak
- 驚嘆號!限定訪問__repr__等魔法函數:
Setup
class Data(object): def __str__(self): return ‘str‘ def __repr__(self): return ‘repr‘
Old
‘%s %r‘ % (Data(), Data())
New
‘{0!s} {0!r}‘.format(Data())
Output
str repr
- 增加類魔法函數__format__(self, format) , 可以根據format前的字符串格式來定制不同的顯示, 如: ’{:xxxx}’ 此時xxxx會作為參數傳入__format__函數中。
Setup
class HAL9000(object): def __format__(self, format): if (format == ‘open-the-pod-bay-doors‘): return "I‘m afraid I can‘t do that." return ‘HAL 9000‘
New
‘{:open-the-pod-bay-doors}‘.format(HAL9000())
Output
I‘m afraid I can‘t do that.
- 時間日期的特例:
Setup
from datetime import datetime
New
‘{:%Y-%m-%d %H:%M}‘.format(datetime(2001, 2, 3, 4, 5))
Output
2001-02-03 04:05
以上來自https://www.cnblogs.com/ToDoToTry/p/5635863.html,在此記錄,以便日後學習。
Python學習之format函數的使用