Python格式化字符串二(format)


二. 使用format格式

格式 [[fill]align][sign][#][0][width][,][.precision][type]

fill 可選 空白處填充的字符

align 可選 對齊方式(需配合width使用) 
< 內容左對齊
> 內容右對齊(默認)
= 內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即使:符號+填充物+數字 ,內容居中

sign 可選 有無符號數字
+,正號加正,負號加負;
-,正號不變,負號加負;
空格 ,正號空格,負號加負;

“#” 可選 對於二進制、八進制、十六進制,如果加上#,會顯示 0b/0o/0x,否則不顯示

, 可選 為數字添加分隔符,如:1,000,000

width 可選 格式化位所占寬度

.precision 可選 小數位保留精度

type 可選 格式化類型

傳入” 字符串類型 “的參數 s,格式化字符串類型數據
空白,未指定類型,則默認是None,同s

傳入“ 整數類型 ”的參數 
b,將10進制整數自動轉換成2進制表示然后格式化
c,將10進制整數自動轉換為其對應的unicode字符
d,十進制整數
o,將10進制整數自動轉換成8進制表示然后格式化;
x,將10進制整數自動轉換成16進制表示然后格式化(小寫x)
X,將10進制整數自動轉換成16進制表示然后格式化(大寫X)

傳入“ 浮點型或小數類型 ”的參數 e, 轉換為科學計數法(小寫e)表示,然后格式化;
E, 轉換為科學計數法(大寫E)表示,然后格式化;
f , 轉換為浮點型(默認小數點后保留6位)表示,然后格式化;
F, 轉換為浮點型(默認小數點后保留6位)表示,然后格式化;
g, 自動在e和f中切換
G, 自動在E和F中切換
%,顯示百分比(默認顯示小數點后6位)

例:

1.格式化字典形式

>>> f1="I am {0},I am {1}d years old!".format("Tom",22)
>>> print(f1)
I am Tom,I am 22d years old!
>>> f2="I am {name},I am {age}d years old!".format(**{"name":"Jeck","age":23})#此處**必不可少
>>> print(f2)
I am Jeck,I am 23d years old!

2.字符串中變量的賦值

  >>> mstr="I am %s,and I have %d book!"
  >>> print("mstr---",mstr%("Tim",3))
  mstr--- I am Tim,and I have 3 book!

 

  >>> mstr1="I am %s,and I have %d book!"%("Tom",5)

  >>> print("mstr1---",mstr1)

mstr1--- I am Tom,and I have 5 book!
>>> mstr2="I am {0},and I have{2} pen,and I love {1}!".format("Jack","北京",10) >>> print("mstr2---",mstr2) mstr2--- I am Jack,and I have10 pen,and I love 北京!
>>> mstr3="I am {0},and I have {1} pen,and I love {2}!".format("Jack",10,"北京") >>> print("mstr3---",mstr3) mstr3--- I am Jack,and I have 10 pen,and I love 北京!

3.常用的字符串操作函數

>>> mstr="xya abaac  ddddeeee ff aabddv"
>>> print(mstr.count("a"))#統計a出現的次數
6
>>> print("返回第一個c出現的索引位置:",mstr.find("c"))
返回第一個c出現的索引位置: 8
>>> print(mstr.replace("a","^-^"))#用^-^替換所有的a
xy^-^ ^-^b^-^^-^c  ddddeeee ff ^-^^-^bddv
>>> print(mstr.replace("a","^-^",1))#用^-^替換第一個a
xy^-^ abaac  ddddeeee ff aabddv
>>> print(mstr.title())#字符串的首字母大寫
Xya Abaac  Ddddeeee Ff Aabddv

4.字符串中插入字符、分割字符串

>>> mstr="xya abaac daaee f abv"
>>> print ("^-^".join(mstr))#把^-^插入到字符串的每個字符之間
x^-^y^-^a^-^ ^-^a^-^b^-^a^-^a^-^c^-^ ^-^d^-^a^-^a^-^e^-^e^-^ ^-^f^-^ ^-^a^-^b^-^v
>>> print(" ".join(mstr))#把空格插入到字符串的每個字符之間
x y a   a b a a c   d a a e e   f   a b v
>>> print(mstr.split())#按切割字符串,默認在空格處切分
['xya', 'abaac', 'daaee', 'f', 'abv']
>>> print(mstr.split("a"))#割字符串,以a為分隔符
['xy', ' ', 'b', '', 'c d', '', 'ee f ', 'bv']

5.刪除字符串中的空格

>>> mstr="   akdflkas:dsfadf    "
>>> print(mstr.strip())#移除字符串兩邊的空格
akdflkas:dsfadf
>>> print(mstr.lstrip())#移除字符串左邊的空格
akdflkas:dsfadf    
>>> print(mstr.rstrip())#移除字符串右邊的空格
   akdflkas:dsfadf

6.填充字符串

(1)填充常跟對齊一起使用,^<>分別是居中、左對齊、右對齊,后面帶寬度
(2):號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充

>>> "{:20}".format("asdf")#默認在規定的20個字符長度中左對齊
'asdf                '
>>> "{:^20}".format("adff")#^表示在規定20個字符的長度中居中對齊
'        adff        '
>>> "{:<20}".format("asdf")#<表示在規定的20個字符的長度中左對齊
'asdf                '
>>> "{:>20}".format("asdf")#>表示在規定的20個字符的長度中右對齊
'                asdf'
>>> "python{:*<20}".format("666")#指定填充字符串'666'在'python'后,並且左對齊,別外不夠20個字符時用*號補齊
'python666*****************'
>>> "python{:*^20}".format("666")#指定填充字符串'666'在'python'后,並且在20個字符的長度中居中對齊,不夠的用*補齊
'python********666*********'
>>> "python{:*>20}".format("666")#指定填充字符串'666'在'python'后,並且在20個字符的長度中右對齊,不夠的用*補齊
'python*****************666'

7.加千位分隔符

>>> "{:,}".format(1234567890)#添加千位分割符
'1,234,567,890'

 8.格式化小數點位數

#保留3位小數點的方法
>>> x=1122.12221221 >>> "{:0.3f}".format(x) '1122.122' >>> "{0:0.3f}".format(x) '1122.122' >>> "{0:.3f}".format(x) '1122.122' >>> "{:.3f}".format(x) '1122.122'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM