IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
Python 3引入了一種新的方式來格式化字符串,這種方式也反向移植到了Python 2.7中。“新式”格式化字符串廢除了%操作符這種特殊語法,使得格式化字符串更常規(guī)。通過在字符串對象上調(diào)用format()方法來格式化字符串。
format()方法要求字符串中待格式化的字符串用花括號“{}”占位:
- >>> score = 59
- >>> name = 'Ming'
- >>> # format()方法將score和name按順序格式化,即score和name按順序“填充”
- >>> '{} {}'.format(score, name)
- '59 Ming'
1、格式化數(shù)字
格式化數(shù)字時,如果不使用任何說明符,那么“{}”僅起到占位的作用,不會改變原本的數(shù)字:
- >>> '我的幸運數(shù)字是{}'.format(7)
- '我的幸運數(shù)字是7'
- >>> '圓周率約等于{}'.format(3.14)
- '圓周率約等于3.14'
“:d”說明符用于將數(shù)字轉(zhuǎn)換成整數(shù),如果提供的數(shù)字無法轉(zhuǎn)換成整數(shù)(如浮點數(shù)),Python解釋器將會報錯:
- >>> '{:d}'.format(7)
- '7'
- >>> '{:d}'.format(3.14)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- ValueError: Unknown format code 'd' for object of type 'float'
“:f”說明符用于將數(shù)字轉(zhuǎn)換成浮點數(shù),“新式”格式化字符串的方式也可以指定浮點數(shù)位數(shù):
- >>> '{:f}'.format(3.14) # 默認(rèn)位數(shù)為小數(shù)點后6位
- '3.140000'
- >>> '{:.2f}'.format(3) # 指定為小數(shù)點后2位
- '3.00'
當(dāng)小數(shù)位數(shù)超出指定的位數(shù)時,會以四舍五入的形式舍棄后面的小數(shù):
- >>> '{:.5f}'.format(3.1415926) # 保留小數(shù)點后5位
- '3.14159'
- >>> '{:f}'.format(3.1415926) # 默認(rèn)保留小數(shù)點后6位
- '3.141593'
可以使用正號“+”來顯式指出數(shù)字為正,當(dāng)數(shù)字為負(fù)數(shù)時,不需要使用多余的符號:
- >>> '{:+d}'.format(7)
- '+7'
- >>> '{:d}'.format(-7)
- '-7'
使用“:,”進(jìn)行格式化,會將數(shù)字的每三位加一個逗號:
- >>> '{:,}'.format(123456789)
- '123,456,789'
2、格式化字符串
當(dāng)需要格式化多個字符串時,format()方法的參數(shù)需要用逗號隔開:
- >>> '{} {} {}'.format(7, 'Ming', 3.14)
- '7 Ming 3.14'
它們本質(zhì)上是元組數(shù)據(jù)類型,并且元組中包含的每個項都可以通過其索引號(索引號從0開始)進(jìn)行調(diào)用。可以將這些索引號傳遞到用作原始字符串中占位符的“{}”中:
- >>> '{0} {1} {2}'.format(7, 'Ming', 3.14) # 0 1 2 為默認(rèn)順序
- '7 Ming 3.14'
- >>> '{2} {1} {0}'.format(7, 'Ming', 3.14) # 將順序調(diào)整為2 1 0
- '3.14 Ming 7'
- >>> '{2} {0} {1}'.format(7, 'Ming', 3.14) # 將順序調(diào)整為2 0 1
- '3.14 7 Ming'
3、使用字符串名稱
可以在占位符的“{}”中填入待格式化的字符串名稱,這樣可以使原始字符串看起來更加清晰:
- >>> '{name}的分?jǐn)?shù)是{score}'.format(name='Ming', score=88)
- 'Ming的分?jǐn)?shù)是88'
4、填充和對齊
可以通過附加參數(shù)增加字符串長度來填充字符串,或者在字符串周圍創(chuàng)造“空間”。當(dāng)需要可視化地組織大量數(shù)據(jù)時,這會很有用,下面是一些例子:
- >>> '{:10}'.format('Ming') # 10代表字符串一共占用10個字符
- 'Ming '
- >>> '{:>10}'.format('Ming') # >使字符串右對齊,一共占用10個字符
- ' Ming'
- >>> '{:^10}'.format('Ming') # ^使字符串居中,一共占用10個字符
- ' Ming '
除了用空格填充字符串外,還可以用其他字符來填充字符串:
- >>>
- >>> '{:_<10}'.format('Ming') # 使用_填充字符串,<使字符串左對齊
- 'Ming______'
- >>> '{:s<10}'.format('Ming') # 使用s填充字符串,<使字符串左對齊
- 'Mingssssss'
- >>> '{:_>10}'.format('Ming') # 使用_填充字符串,>使字符串右對齊
- '______Ming'
- >>> '{:_^10}'.format('Ming') # 使用_填充字符串,^使字符串居中
- '___Ming___'
在格式化數(shù)字時,也可以填充字符串:
- >>> '{:10d}'.format(59)
- ' 59'
- >>> # 6代表一共占用6個字符,0代表使用0填充,2代表保留小數(shù)點后2位
- >>> '{:06.2f}'.format(3.14159265)
- '003.14'
5、截斷長字符串
“.”用于將字符串截斷成指定長度:
- >>> '{:.4}'.format('Xiao Ming') # 截斷成4位字符串
- 'Xiao'
- >>> '{:8.4}'.format('Xiao Ming') # 截斷成4位字符串,一共占用8個字符
- 'Xiao '
>>本文地址:http://liujunjsxg.cn/zhuanye/2020/52149.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個方向的工作?