站長在線Python精講:在Python中格式化字符串的兩種方法詳解
導(dǎo)讀:歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《在Python中格式化字符串的兩種方法詳解》。本知識點(diǎn)主要內(nèi)容有:使用%操作符格式化字符串和使用format()方法格式化字符串。
永久美國免備案虛擬主機(jī)1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費(fèi)查看答案和答案解析
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識,本文學(xué)習(xí)的是《在Python中格式化字符串的兩種方法詳解》。本知識點(diǎn)主要內(nèi)容有:使用%操作符格式化字符串和使用format()方法格式化字符串。
格式化字符串的意思是先制定一個(gè)模板,在這個(gè)模板中預(yù)留幾個(gè)空位,然后再根據(jù)需要填上相應(yīng)的內(nèi)容。這些空位需要通過指定的符號標(biāo)記(也稱為占位符),而這些符號還不會顯示出來。在Python中,格式化字符串有以下兩種方法。
站長在線提醒你:這里的格式化字符串中的格式化,不再是我們電腦、手機(jī)常用的格式化磁盤哦,電腦和手機(jī)磁盤的格式化(format)是指對磁盤或磁盤中的分區(qū)進(jìn)行初始化的一種操作,這種操作通常會導(dǎo)致現(xiàn)有的磁盤或分區(qū)中所有的文件被清除。所以大家不要混淆了兩個(gè)不同的概念。
1.使用%操作符格式化字符串
在Python中,要實(shí)現(xiàn)格式化字符串,可以使用“%”操作符。語法格式如下:
'%[-][+][0][m][.n]格式化字符'%exp
參數(shù)說明如下:
-:可選參數(shù),用于指定左對齊,正數(shù)前方無符號,負(fù)數(shù)前面加負(fù)號。
+:可選參數(shù),用于指定右對齊,正數(shù)前方加正號,負(fù)數(shù)前方加負(fù)號。
0:可選參數(shù),表示右對齊,正數(shù)前方元符號,負(fù)數(shù)前方加負(fù)號,用0填充空白處(一般與m參數(shù)一起使用)。
m:可選參數(shù),表示占有寬度。
.n:可選參數(shù),表示小數(shù)點(diǎn)后保留的位數(shù)。
格式化字符:見下方。
exp:要轉(zhuǎn)換的項(xiàng)。如果要指定的項(xiàng)有多個(gè),需要通過元組的形式進(jìn)行指定,但不能使用列表。
Python中常用的格式化字符有:
%d、%i :轉(zhuǎn)換為帶符號的十進(jìn)制整數(shù)
%o :轉(zhuǎn)換為帶符號的八進(jìn)制整數(shù)
%x、%X :轉(zhuǎn)換為帶符號的十六進(jìn)制整數(shù)
%e :轉(zhuǎn)化為科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)(e 小寫)
%E :轉(zhuǎn)化為科學(xué)計(jì)數(shù)法表示的浮點(diǎn)數(shù)(E 大寫)
%f、%F :轉(zhuǎn)化為十進(jìn)制浮點(diǎn)數(shù)
%g :智能選擇使用 %f 或 %e 格式
%G :智能選擇使用 %F 或 %E 格式
%c :格式化字符及其 ASCII 碼
%r :使用 repr() 函數(shù)將表達(dá)式轉(zhuǎn)換為字符串
%s :使用 str() 函數(shù)將表達(dá)式轉(zhuǎn)換為字符串
格式化操作符輔助符:
*:定義寬度或者小數(shù)點(diǎn)精度
-:用做左對齊
+:在正數(shù)前面顯示加號(+)
#:在八進(jìn)制數(shù)前面顯示零(0),在十六進(jìn)制前面顯示"0x"或者"0X"(取決于用的是"x"還是"X")
0:顯示的數(shù)字前面填充"0"而不是默認(rèn)的空格
(var):映射變量(通常用來處理字段類型的參數(shù))
m.n:m 是顯示的最小總寬度,n 是小數(shù)點(diǎn)后的位數(shù)(如果可用的話)
示例:格式化輸出一個(gè)保存公司信息的字符串,代碼如下:
demo = '編號:%03d\t 公司名稱:%s \t 官網(wǎng):https://www.%s.com' # 定義一個(gè)模板
text1 = (1,'百度','baidu') # 定義要轉(zhuǎn)換的內(nèi)容1
text2 = (2,'站長在線','olzz') # 定義要轉(zhuǎn)換的內(nèi)容2
print(demo%text1) # 格式化輸出1
print(demo%text2) # 格式化輸出2
運(yùn)行結(jié)果如下:
編號:001 公司名稱:百度 官網(wǎng):https://www.baidu.com
編號:002 公司名稱:站長在線 官網(wǎng):http://003188.cn
>>>
站長在線溫馨提醒:使用“%”操作符的方法是早期的方法,目前在Python 3.10中仍然有效,3.10官方最新提供的方法,只有format()方法,所以format()方法才是大家學(xué)習(xí)的重點(diǎn)。
2、使用format()方法格式化字符串
字符串對象提供了format()方法用于進(jìn)行字符串格式化。其語法格式如下:
str.format(args)
其中,str用于指定字符串的顯示樣式(即模板);args用于指定要轉(zhuǎn)換的項(xiàng),如果有多項(xiàng),則用逗號進(jìn)行分隔。
下面重點(diǎn)介紹如何創(chuàng)建模板。在創(chuàng)建模板時(shí),需要使用“{}”和“:”指定占位符,基本語法格式如下:
{[index][:[[fill]align][sign][#][width][.precision][type]]}
參數(shù)說明如下:
index:可選參數(shù),用于指定要設(shè)置格式的對象在參數(shù)列表中的索引位置,索引值從0開始。如果省略,則根據(jù)值的先后順序自動分配。
fill:可選參數(shù),用于指定空白處填充的字符。
align:可選參數(shù),用于指定對齊方式(值為“<”表示內(nèi)容左對齊;值為“>”表示內(nèi)容右對齊;值為“=”表示內(nèi)容右對齊,將符號放在填充內(nèi)容的最左側(cè),且只對數(shù)字類型有效;值為“^”表示內(nèi)容居中),需要配合width一起使用。
sign:可選參數(shù),用于指定有無符號數(shù)(值為“+”表示正數(shù)加正號,負(fù)數(shù)加負(fù)號;值為“-”表示正數(shù)不變,負(fù)數(shù)加負(fù)號;值為空格表示正數(shù)加空格,負(fù)數(shù)加負(fù)號)。
#:可選參數(shù),對于二進(jìn)制、八進(jìn)制和十六進(jìn)制,如果加上“#”,表示會顯示0b/0o/0x前綴,否則不顯示前綴。
width:可選參數(shù),用于指定所占寬度。
.precision:可選參數(shù),用于指定保留的小數(shù)位數(shù)。
type:可選參數(shù),用于指定類型,
formcat()方法中常用的格式化字符如下:
s :對字符串類型格式化。
d :十進(jìn)制整數(shù)。
c :將十進(jìn)制整數(shù)自動轉(zhuǎn)換成對應(yīng)的 Unicode 字符。
e 或者 E : 轉(zhuǎn)換成科學(xué)計(jì)數(shù)法后,再格式化輸出。
g 或 G :自動在 e 和 f(或 E 和 F)中切換。
b :將十進(jìn)制數(shù)自動轉(zhuǎn)換成二進(jìn)制表示,再格式化輸出。
o :將十進(jìn)制數(shù)自動轉(zhuǎn)換成八進(jìn)制表示,再格式化輸出。
x 或者 X :將十進(jìn)制數(shù)自動轉(zhuǎn)換成十六進(jìn)制表示,再格式化輸出。
f 或者 F :轉(zhuǎn)換為浮點(diǎn)數(shù)(默認(rèn)小數(shù)點(diǎn)后保留 6 位),再格式化輸出。
% :顯示百分比(默認(rèn)顯示小數(shù)點(diǎn)后 6 位)。
例如,定義一個(gè)保存公司信息的字符串模板,然后應(yīng)用該模板輸出不同公司的信息,代碼如下:
demo = '編號:{:0>3s}\t 公司名稱:{:s} \t 官網(wǎng):https://www.{:s}.com' # 定義一個(gè)模板
text1 = demo.format('1','百度','baidu') # 定義要轉(zhuǎn)換的內(nèi)容1
text2 = demo.format('2','站長在線','olzz') # 定義要轉(zhuǎn)換的內(nèi)容2
print(text1) # 格式化輸出1
print(text2) # 格式化輸出2
運(yùn)行結(jié)果為:
編號:001 公司名稱:百度 官網(wǎng):https://www.baidu.com
編號:002 公司名稱:站長在線 官網(wǎng):http://003188.cn
>>>
format()是python2.6新增的一個(gè)格式化字符串的方法,功能非常強(qiáng)大,有可能在未來完全替代%格式化方法,相比 % ,format()的優(yōu)點(diǎn)有:
1 .格式化時(shí)不用關(guān)心數(shù)據(jù)類型的問題,format()會自動轉(zhuǎn)換,而在%方法中,%s用來格式化字符串類型,%d用來格式化整型;
2. 單個(gè)參數(shù)可以多次輸出,參數(shù)順序可以不同
3. 填充方式靈活,對齊方式強(qiáng)大
所以,我們要著重掌握format()的方法,下面講解一個(gè)實(shí)例。
在實(shí)際開發(fā)中,數(shù)值類型有多種顯示需求,比如貨幣形式、百分比形式等,使用 format() 方法可以將數(shù)值格式化為不同的形式。相關(guān)代碼如下:
import math # 導(dǎo)入Python的數(shù)學(xué)模塊
print('1251+3950的結(jié)果是(以貨幣形式顯示):¥{:,.2f}元'.format(1251+3950)) # 以貨幣形式顯示
print('{0:.1f}用科學(xué)計(jì)數(shù)法表示:{0:E}'.format(120000.1)) # 用科學(xué)計(jì)數(shù)法表示
print('π取5位小數(shù)點(diǎn):{:.5f}'.format(math.pi)) # 輸出小數(shù)點(diǎn)后五位
print('{0:d}的16進(jìn)制結(jié)果是:{0:#x}'.format(100)) # 輸出十六進(jìn)制數(shù)
print('天才是由 {:.0%} 的靈感,加上 {:.0%} 的汗水 。'.format(0.01,0.99)) # 輸出百分比,并且不帶小數(shù)
運(yùn)行結(jié)果為:
1251+3950的結(jié)果是(以貨幣形式顯示):¥5,201.00元
120000.1用科學(xué)計(jì)數(shù)法表示:1.200001E+05
π取5位小數(shù)點(diǎn):3.14159
100的16進(jìn)制結(jié)果是:0x64
天才是由 1% 的靈感,加上 99% 的汗水 。
>>>
到此為止,本文主要內(nèi)容《在Python中格式化字符串詳解》中的新老方法:使用%操作符格式化字符串和使用format()方法格式化字符串,在這一點(diǎn)希望大家會舉一反三,靈活掌握,格式化字符串掌握了,以后在實(shí)踐Python爬蟲的時(shí)候才會使用,要不然不會格式化字符串,在Python爬蟲實(shí)踐的時(shí)候,就不知所措了。
本文地址:http://003188.cn/pythongeshihuazifuchuan.html
阿里云虛擬主機(jī)1G空間,120元一年
香港、美國虛擬主機(jī)100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡