python常用的格式化字符串方法
格式化字符串在基礎的字符串學習中是一個重要的部分,我們按格式化方式來介紹:
%格式化
'hello, %s' % 'world!'
>>>'hello, world!'
'一共%d元!' % 23
>>>'一共23元!'
'結果:%.2f' % 2.457
>>>'結果:2.46'
# 格式化多個內容使用元組傳遞
'第一個%s, 第二個%d' % ('hello', 23)
>>>'第一個hello, 第二個23'
format()
函數格式化:
# 第一點0,1佔位這樣可以很方便調整
# >表示左邊填充(默認是空格)
'這是多個結果:1-{1:3d}, 2-{0:>12s}'.format('hello', 1234)
>>>'這是多個結果:1-1234, 2- hello'
- 一個經典的場景:
假設我們獲取到了年月日的數值,需要格式化成2019-01-04的形式,那麼上面的填充就有了很好的應用:
'{:4d}-{:0>2d}-{:0>2d}'.format(2019, 1, 4)
>>>'2019-01-04'
通過變量名格式化字符串
實際編寫腳本的時候我們會遇到將處理後緩存變量的結果格式化輸出:
name = "sandwich"
sentence = "hello!"
f"{name} said '{sentence}'"
>>> "sandwich said 'hello!'"
格式化字符串的補充
- 格式化符號:
符號 | 描述 |
---|---|
%c | 格式化字符及其ASCII碼 |
%s | 格式化字符串 |
%d | 格式化整數 |
%u | 格式化無符號整型 |
%o | 格式化無符號八進制數 |
%x | 格式化無符號十六進制數 |
%X | 格式化無符號十六進制數(大寫) |
%f | 格式化浮點數字,可指定小數點後的精度 |
%e | 用科學計數法格式化浮點數 |
%E | 作用同%e,用科學計數法格式化浮點數 |
%g | %f和%e的簡寫 |
%G | %F 和 %E 的簡寫 |
%p | 用十六進制數格式化變量的地址 |
- 輔助指令(format形式下需調整):
符號 | 功能 |
---|---|
* | 定義寬度或者小數點精度 |
- | 用做左對齊 |
+ | 在正數前面顯示加號( + ) |
<sp> | 在正數前面顯示空格 |
# | 在八進制數前面顯示零(‘0’),在十六進制前面顯示’0x’或者’0X’(取決於用的是’x’還是’X’) |
0 | 顯示的數字前面填充’0’而不是默認的空格 |
% | ‘%%‘輸出一個單一的’%’ |
(var) | 映射變量(字典參數) |
m.n. | m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話) |
!r的格式化是基於__repr__()魔法方法的,後續補充說明,建議初學者不必瞭解,到面向對象部分再深入理解。