6. python 字符串格式化表達式
字符串格式化允許在一個單個的步驟中對一個字符串執行多個特定類型的替換
特別是給用戶提示的時候,格式化非常方便
實現方法:
1.格式化表達式,類似於c語言的printf
在表達式中,我們使用%二進制操作符
>>> print('this is %d %s bird' % (1,'dead'))
this is 1 dead bird
舉上面的例子說明(注意我們下面所說的%,都是以字符串和元組中間的那個為准)
在%的左邊放置一個字符串,字符串里面放置了一個或者多個使用%開頭的嵌入對象
在%的右邊放入一個(或多個,嵌入元組當中)對象,這些對象將插入到左邊的轉換目標位置上
>>> name='ray'
>>> 'my name is %s' % name
'my name is ray'
>>> '%d %s %d you' % (1,'spam',4)
'1 spam 4 you'
>>> '%s---%s---%s' % (42,3.14,[1,2,3])
'42---3.14---[1, 2, 3]'
>>>
當插入多個對象時,需要把他們放到一個元組里面
2.高級格式化表達式
字符串格式化代碼列表
代碼 |
意義 |
s |
字符串(或者任何對象) |
r |
s,但是用repr,而不是str |
c |
字符 |
d |
十進制整數 |
i |
整數 |
u |
無號整數 |
o |
八進制整數 |
x |
十六進制整數 |
X |
x,但打印大寫 |
e |
浮點指數 |
E |
e,但打印大寫 |
f |
浮點十進制 |
F |
浮點十進制 |
g |
浮點e或f |
G |
浮點e或f |
% |
常量% |
%[(name)][flags][width][.pression]typecode
例子
>>> x=1234
>>> res='integers:...%d...%-6d...%06d' % (x,x,x)
>>> res
'integers:...1234...1234 ...001234'
>>>
%e,%f,%g對於浮點數的打印是有所區別的
>>> x=1.23456789
>>> x
1.23456789
>>> '%e|%f|%g' % (x,x,x)
'1.234568e+00|1.234568|1.23457'
>>>
3.基於字典的格式化表達式
>>> 'my name is %(name)s,my age is %(age)d' % {'name':'ray','age':30}
'my name is ray,my age is 30'
>>>
說白了就是給每個替換位置命名,這樣代碼看起來更加明了