字元串格式化用于解決字元串和變量同時輸出時的格式安排。Python中有str.format(),format()和%三種格式控制的方法,但主要采用str.format()方法進行字元串的格式化。
一,str.format()方法
str.format()方法的基本使用格式:
.format()
其中模闆字元串是由一系列的槽({})組成,用來控制修改字元串中嵌入值出現的位置,基本思路:将str.format()方法中逗号分隔的參數按照序号關系替換到模闆字元串的槽中,槽用大括号({})來表示,如果大括号中沒有序号,則按照出現順序替換。
>>> "{}部落格".format("志穎")
'志穎部落格'
>>> "{2}部落格 專注于{3}和{1}{0}".format("前端", "web", "志穎", "Python爬蟲")
'志穎部落格 專注于Python爬蟲和web前端'
注意:序号是從0開始,而不是1。
槽的内部格式:
{:}
格式控制标記是用來控制參數顯示時的格式,它的格式:
: <.>
::引導符号
:用于填充的單個字元
:右對齊,^居中
:槽的設定輸出寬度
:英文狀态下的逗号,數字的千分位分隔符,适用于整數和浮點數
<.>:浮點數小數部分的精度
:整數類型b,c,d,o,x,X,浮點數類型e,E,f,%
下面來看幾個例子:
>>> s = "志穎部落格"
>>> "{0:10}".format(s) # 預設左對齊
'志穎部落格 '
>>> "{0:*^20}".format(s) # 居中對齊,*填充
'********志穎部落格********'
<.>有兩個含義,由小數開頭。對于浮點數,精度表示小數部分輸出的有效位數。對于字元串,精度表示輸出的最大長度。帶有小數點的數字(類型裡未用f辨別帶有小數點的數字),精度表示保留幾位有效數字。
>>> '{:.3}'.format(9.0807776)
'9.08'
>>> '{:.3f}'.format(9.0807776)
'9.081'
>>> '{:.3}'.format('9.0807776')
'9.0'
表示輸出整數和浮點數類型的格式規則。
整數類型輸出格式有6種:
b:輸出整數的二進制形式。
c:輸出整數對應的Unicode字元。
d:輸出整數的十進制形式。
o:輸出整數的八進制形式。
x:輸出整數的小寫十六進制形式。
X:輸出整數的大寫十六進制形式。
浮點數類型輸出格式有4種:
e:輸出浮點數對應的小寫字母e的指數形式。
E:輸出浮點數對應的小寫字母e的指數形式。
f:輸出浮點數的标準浮點形式。
%:輸出浮點數的百分形式。
二,format方法
在控制台利用help指令檢視一下它的幫助文檔。
>>> help(format)
Help on built-in function format in module builtins:
format(value, format_spec='', /)
Return value.__format__(format_spec)
format_spec defaults to the empty string
format()方法和str.format()方法用法差不多,隻不過,format()方法中槽的内部隻有格式控制标記,沒有參數序号和引導符号。其中value是需要輸出的字元串,format_spec是格式控制标記。
>>> format('aksfhakefhk','<20')
'aksfhakefhk '
>>> format('aksfhakefhk',':<20')
'aksfhakefhk:::::::::'
>>> format('lfajlajl', '*>30') # 右對齊,填充*
'**********************lfajlajl'
>>> a = 9.000778468
>>> format(a, '.4f')
'9.0008'
三,%方法
%方法類似于C語言中的格式化控制符,%s表示格式化為字元串,%d表示格式化為數字。
>>> print('%s專注于Python爬蟲和web前端'%'志穎部落格')
志穎部落格專注于Python爬蟲和web前端
>>> print('今天是%d年%d月%d日'%(2018,10,11))
今天是2018年10月11日
這三種方法雖然都能起格式化字元串的作用,但我還是推薦使用第一種方法。
喜歡 (3)or分享 (0)