1. %
(1)通用格式:%[(name)][flags][width][.precision]typecode
- (name)放置字典的鍵;flags有'+'(顯示正負號),'-'(左對齊),'0'(補零)
- width表示整體寬度;precision表示小數點后位數
- 可以用*來指定width和precision
(2)格式符
| 格式符(typecode) | 意義 |
| s | 字串(或任何物件) |
| r | s,但使用repr(輸出帶引號),而不是str |
| c | ASCII碼對應的字符 |
| e | 浮點指數(E,列印大寫) |
| f,F | 浮點十進制 |
| g | 浮點e或f(G,列印大寫) |
| d | 十進制(整數) |
| u | 無符號(整數) |
| o,i,x | 八進制,十進制,十六進制整數(X,列印大寫) |
| % | 轉義,常量% |
(3)例子
1 >>> "I'm %(name)s.I'm %(age)d years old." % {'name':'Bunny', 'age':20}
2 "I'm Bunny.I'm 20 years old."
3 >>> '%s--%r' % ('Hello','Hello')
4 "Hello--'Hello'"
5 >>> x = 1.23456
6 >>> '%+e...%-10.3E...%0*.*f' %(x, x, 8, 2, x)
7 '+1.234560e+00...1.235E+00 ...00001.23'
2. format
(1)通用格式:{fieldname|conversionflag:[[fill]align][sign][#][0][width][.precision][typecode]}
- fieldname可以是鍵或索引;conversionflag可以是r、s或a(repr, str, ascii)
- fill是填充的字符,默認是空格
- align有'<'(左對齊),'>'(右對齊),'^'(居中對齊),'='(只應用于數字,可用'>'代替)
- sign有'+'(顯示正負號),'-'(與不加'-'一致),空格(正數前面留空格);加#,會使輸出帶進制前綴
- width和.precision之間可以加',',作為千位分隔符,表示金額
(2)格式符:與%格式化中的類似,區別在于多了'b'(二進制整數)和'%'(百分比),另外使用唯一的'd'表示十進制整數(而不是'i'或'u')
(3)例子
1 >>> "I'm {name}.I'm {info[age]} years old.".format(name='Bunny', info=dict(age=20))
2 "I'm Bunny.I'm 20 years old."
3 '{0:+<+8}...{0:>-08}...{0:0^ 8}...{1:=#8x}...{1:12,.2%}'.format(3.14, 100)
4 '+3.14+++...00003.14...0 3.1400...0x 64... 10,000.00%'
時間格式化
1 >>> import datetime
2 >>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)
3 >>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
4 '2010-07-04 12:15:58'
3. format的變形用法
1 >>> salary = 9999.99
2 >>> f'My salary is {salary:.0f}'
3 'My salary is 10000'
4. format_map
1 >>> student = {'name': '小明', 'class': '20190301', 'score': 597.5}
2 >>> '{st[class]}班{st[name]}總分:{st[score]}'.format(st=student)
3 '20190301班小明總分:597.5'
4 >>> '{class}班{name}總分:{score}'.format_map(student)
5 '20190301班小明總分:597.5'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/182420.html
標籤:Python
