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