400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎(chǔ)知識】使用format()方法格式化字符串

【Python基礎(chǔ)知識】使用format()方法格式化字符串

  • 發(fā)布: python培訓(xùn)
  • 來源:python干貨資料
  • 2020-08-14 16:24:33
  • 閱讀()
  • 分享
  • 手機(jī)端入口

Python 3引入了一種新的方式來格式化字符串,這種方式也反向移植到了Python 2.7中。“新式”格式化字符串廢除了%操作符這種特殊語法,使得格式化字符串更常規(guī)。通過在字符串對象上調(diào)用format()方法來格式化字符串。

format()方法要求字符串中待格式化的字符串用花括號“{}”占位:

  1. >>> score = 59 
  2. >>> name = 'Ming' 
  3. >>> # format()方法將score和name按順序格式化,即score和name按順序“填充” 
  4. >>> '{} {}'.format(score, name) 
  5. '59 Ming' 

1、格式化數(shù)字

格式化數(shù)字時(shí),如果不使用任何說明符,那么“{}”僅起到占位的作用,不會改變原本的數(shù)字:

  1. >>> '我的幸運(yùn)數(shù)字是{}'.format(7
  2. '我的幸運(yùn)數(shù)字是7' 
  3. >>> '圓周率約等于{}'.format(3.14
  4. '圓周率約等于3.14' 

“:d”說明符用于將數(shù)字轉(zhuǎn)換成整數(shù),如果提供的數(shù)字無法轉(zhuǎn)換成整數(shù)(如浮點(diǎn)數(shù)),Python解釋器將會報(bào)錯:

  1. >>> '{:d}'.format(7
  2. '7' 
  3. >>> '{:d}'.format(3.14
  4. Traceback (most recent call last): 
  5.   File "<stdin>", line 1in <module> 
  6. ValueError: Unknown format code 'd' for object of type 'float' 

“:f”說明符用于將數(shù)字轉(zhuǎn)換成浮點(diǎn)數(shù),“新式”格式化字符串的方式也可以指定浮點(diǎn)數(shù)位數(shù):

  1. >>> '{:f}'.format(3.14)   # 默認(rèn)位數(shù)為小數(shù)點(diǎn)后6位 
  2. '3.140000' 
  3. >>> '{:.2f}'.format(3)   # 指定為小數(shù)點(diǎn)后2位 
  4. '3.00' 

當(dāng)小數(shù)位數(shù)超出指定的位數(shù)時(shí),會以四舍五入的形式舍棄后面的小數(shù):

  1. >>> '{:.5f}'.format(3.1415926)   # 保留小數(shù)點(diǎn)后5位 
  2. '3.14159' 
  3. >>> '{:f}'.format(3.1415926)   # 默認(rèn)保留小數(shù)點(diǎn)后6位 
  4. '3.141593' 

可以使用正號“+”來顯式指出數(shù)字為正,當(dāng)數(shù)字為負(fù)數(shù)時(shí),不需要使用多余的符號:

  1. >>> '{:+d}'.format(7
  2. '+7' 
  3. >>> '{:d}'.format(-7
  4. '-7' 

使用“:,”進(jìn)行格式化,會將數(shù)字的每三位加一個逗號:

  1. >>> '{:,}'.format(123456789
  2. '123,456,789' 

2、格式化字符串

當(dāng)需要格式化多個字符串時(shí),format()方法的參數(shù)需要用逗號隔開:

  1. >>> '{}  {}  {}'.format(7'Ming'3.14
  2. '7  Ming  3.14' 

它們本質(zhì)上是元組數(shù)據(jù)類型,并且元組中包含的每個項(xiàng)都可以通過其索引號(索引號從0開始)進(jìn)行調(diào)用。可以將這些索引號傳遞到用作原始字符串中占位符的“{}”中:

  1. >>> '{0} {1} {2}'.format(7'Ming'3.14)   # 0 1 2 為默認(rèn)順序 
  2. '7 Ming 3.14' 
  3. >>> '{2} {1} {0}'.format(7'Ming'3.14)   # 將順序調(diào)整為2 1 0 
  4. '3.14 Ming 7' 
  5. >>> '{2} {0} {1}'.format(7'Ming'3.14)   # 將順序調(diào)整為2 0 1 
  6. '3.14 7 Ming' 

3、使用字符串名稱

可以在占位符的“{}”中填入待格式化的字符串名稱,這樣可以使原始字符串看起來更加清晰:

  1. >>> '{name}的分?jǐn)?shù)是{score}'.format(name='Ming', score=88
  2. 'Ming的分?jǐn)?shù)是88' 

4、填充和對齊

可以通過附加參數(shù)增加字符串長度來填充字符串,或者在字符串周圍創(chuàng)造“空間”。當(dāng)需要可視化地組織大量數(shù)據(jù)時(shí),這會很有用,下面是一些例子:

  1. >>> '{:10}'.format('Ming')   # 10代表字符串一共占用10個字符 
  2. 'Ming      ' 
  3. >>> '{:>10}'.format('Ming')   # >使字符串右對齊,一共占用10個字符 
  4. '      Ming' 
  5. >>> '{:^10}'.format('Ming')   # ^使字符串居中,一共占用10個字符 
  6. '   Ming   ' 

除了用空格填充字符串外,還可以用其他字符來填充字符串:

  1. >>>  
  2. >>> '{:_<10}'.format('Ming')   # 使用_填充字符串,<使字符串左對齊 
  3. 'Ming______' 
  4. >>> '{:s<10}'.format('Ming')   # 使用s填充字符串,<使字符串左對齊 
  5. 'Mingssssss' 
  6. >>> '{:_>10}'.format('Ming')   # 使用_填充字符串,>使字符串右對齊 
  7. '______Ming' 
  8. >>> '{:_^10}'.format('Ming')   # 使用_填充字符串,^使字符串居中 
  9. '___Ming___' 

在格式化數(shù)字時(shí),也可以填充字符串:

  1. >>> '{:10d}'.format(59
  2. '        59' 
  3. >>> # 6代表一共占用6個字符,0代表使用0填充,2代表保留小數(shù)點(diǎn)后2位 
  4. >>> '{:06.2f}'.format(3.14159265
  5. '003.14' 

5、截?cái)嚅L字符串

“.”用于將字符串截?cái)喑芍付ㄩL度:

  1. >>> '{:.4}'.format('Xiao Ming')   # 截?cái)喑?位字符串 
  2. 'Xiao' 
  3. >>> '{:8.4}'.format('Xiao Ming')   # 截?cái)喑?位字符串,一共占用8個字符 
  4. 'Xiao    ' 

 

文章“【Python基礎(chǔ)知識】使用format()方法格式化字符串”已幫助

>>本文地址:http://nfbqydst.cn/zhuanye/2020/52149.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營全域電商運(yùn)營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時(shí)間TIME