天天看點

python中格式化字元串_python中的字元串的格式化

字元串格式化用于解決字元串和變量同時輸出時的格式安排。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)