文章目錄
本篇彙總了Python中字符串格式化輸出的方法,並給出各自使用樣例。
一、百分號-%
1、直接使用
print("I'm %s. I'm %d year old" % ('Vamei', 99))
2、表達式賦值
實際上構成一個字符串表達式。我們可以像一個正常的字符串那樣,將它賦值給某個變量。比如:
a = "I'm %s. I'm %d year old" % ('Vamei', 99)
print(a)
3、綁定變量名
print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})
4、格式符彙總說明
格式符爲真實值預留位置,並控制顯示的格式。格式符可以包含有一個類型碼,用以控制顯示的類型,如下:
格式控制符號 | 說明 |
---|---|
%s | 字符串 (採用str()的顯示) |
%r | 字符串(採用repr()的顯示) |
%c | 單個字符 |
%b | 二進制整數 |
%d | 十進制整數 |
%i | 十進制整數 |
%o | 八進制整數 |
%x | 十六進制整數 |
%e | 指數 (基底寫爲e) |
%E | 指數 (基底寫爲E) |
%f | 浮點數 |
%g | 指數(e)或浮點數 (根據顯示長度) |
%% | 字符"%" |
5、更精細化的控制
可以用如下的方式,對格式進行進一步的控制:
%[(name)][flags][width].[precision]typecode
(name)爲命名
flags可以有+,-,’ ‘或0。+表示右對齊。-表示左對齊。’ '爲一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充。
width表示顯示寬度
precision表示小數點後精度
比如:
# 輸出結果用0填充
print("%04d" % 5)#0005
# 輸出結果用空串填充,注意,數值長度爲6也包含了小數點'.'
print("%6.3f" % 2.3)# 2.300
上面的width, precision爲兩個整數。
我們可以利用*,來動態代入這兩個量。比如:
二、 format控制
基本語法
python還有一個更強大的字符串處理函數:str.format()
基本語法思路是:通過 {} 和 : 來代替以前的 %。
'{0},{1}'.format('kzc',18)
'{},{}'.format('kzc',18)
'{1},{0},{1}'.format('kzc',18)
1、綁定變量名
'{name},{age}'.format(age=18,name='kzc')
2、綁定對象屬性
class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self)
str(Person('kzc',18))
3、通過下標取元素來賦值
p=['kzc',18]
'{0[0]},{0[1]}'.format(p)
4、填充與對齊
符號 | 功能 |
---|---|
^ | 居中 |
< | 左對齊 |
> | 右對齊 |
: s | 表示用字符 s 填充,若不指定flag,則用空格填充 |
# 用空字符填充
'{:>8}'.format('189')
' 189'
# 用填充
'{:0>8}'.format('189')
'00000189'
# 用字符'a'填充
'{:a>8}'.format('189')
'aaaaa189'
5、精度與類型
精度常跟類型f一起使用
其中.2表示長度爲2的精度,f表示float類型。
'{:.2f}'.format(321.33345)
6、千位分隔符
'{:,}'.format(1234567890)
#'1,234,567,890'