新聞中心
大家好,我是菜鳥哥!

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、益陽(yáng)網(wǎng)站維護(hù)、網(wǎng)站推廣。
人生苦短,我學(xué)Python!
今天的文章非常的細(xì)節(jié),堪稱史上最全對(duì)字符串格式化輸出的講解了!
上個(gè)周周末看到”pandas數(shù)據(jù)格式化處理“的時(shí)候想著把(設(shè)置小數(shù)位數(shù),設(shè)置百分位,設(shè)置千位分隔符)這些個(gè)知識(shí)點(diǎn)知識(shí)點(diǎn)總結(jié)一下,記一下筆記??墒?,記著記著發(fā)現(xiàn)怎么越來(lái)越多,而且都和字符串格式化離不開關(guān)系,于是我又轉(zhuǎn)頭去復(fù)習(xí)了一下字符串格式化部分的知識(shí)。
但是我萬(wàn)萬(wàn)沒(méi)想到啊,本以為不多的知識(shí)點(diǎn),但是仔細(xì)整理下來(lái) ,想要把絕大部分都搞清楚,還是花了我一周多的時(shí)間,特別是g和G的使用,百度,google說(shuō)的太籠統(tǒng)了,后來(lái)去官網(wǎng)看,但是我官網(wǎng)的真是太官方了,我還真不太能理解其中的一些個(gè)意思,于是就開始磨,一點(diǎn)一點(diǎn)試錯(cuò),索性還是鼓搗清楚十之八九,于是就形成了下面你所看到的這篇帖子......
目錄:
- 一、% 格式化
- 二、str.format()格式化
- 三、f-string格式化
- 四、format()
- 五、總結(jié)
- 參考
一、% 格式化
1.語(yǔ)法
"%[(name)][flags][width][.precison]type" % 待格式化數(shù)據(jù)
2.參數(shù)
(1) %: 占位符;
(2) (name):命名占位字符;
(3) flags可選:
1) +: 右對(duì)齊,正數(shù)加正號(hào),負(fù)數(shù)加負(fù)號(hào);
2) -: 左對(duì)齊,正數(shù)無(wú)符號(hào),負(fù)數(shù)加負(fù)號(hào);
3) 空格: 右對(duì)齊(默認(rèn)的對(duì)齊方式),正數(shù)前加空格,負(fù)數(shù)前加負(fù)號(hào);
4) 0: 右對(duì)齊,以0填充,正數(shù)無(wú)符號(hào),負(fù)數(shù)加負(fù)號(hào),并將符號(hào)放置在0最左側(cè);
(4) width: 占位寬度, 若指定寬度小于原數(shù)據(jù)長(zhǎng)度則按原長(zhǎng)度數(shù)據(jù)輸出;
(5) .precison: 小數(shù)點(diǎn)后保留位數(shù);在字符串中則表示截取/字符串切片;
(6) type: 詳見如下...
3.type
(1) s: string, 字符串;
(2) d: decimal integer, 十進(jìn)制數(shù);
(3) i: integer, 用法同%d;
(4) u: unsigned integer, 無(wú)符號(hào)十進(jìn)制數(shù);
(5) f: float, 浮點(diǎn)數(shù)(默認(rèn)保留小數(shù)點(diǎn)后6位);
(6) F: Float, 浮點(diǎn)數(shù)(默認(rèn)保留小數(shù)點(diǎn)后6位);
(7) e: exponent, 將數(shù)字表示為科學(xué)計(jì)數(shù)法(小寫e, 默認(rèn)保留小數(shù)點(diǎn)后6位);
(8) E: Exponent, 將數(shù)字表示為科學(xué)計(jì)數(shù)法(大寫E, 默認(rèn)保留小數(shù)點(diǎn)后6位);
(9) o: octal, 八進(jìn)制數(shù)(即0-7);
(10) x: hexdecimal, 十六進(jìn)制數(shù)(即0-9a-f);
(11) X: Hexdecimal, 十六進(jìn)進(jìn)制數(shù)(0-9A-F);
(12) g: general format, 通用格式,詳見如下...;
(13) G: General format, 通用格式,詳見如下...;
(14) %c: character, 將十進(jìn)制數(shù)轉(zhuǎn)換為所對(duì)應(yīng)的unicode值;
(15) %r: representation, 調(diào)用__repr__魔法方法輸出;
(16) %%: 轉(zhuǎn)義%,輸出百分號(hào)。
4.補(bǔ)充
四舍五入 vs 四舍六入五雙
- 四舍五入
在需要將一個(gè)"小數(shù)保留小數(shù)點(diǎn)后n位"或"保留n位有效數(shù)字"的時(shí)候即需要對(duì)數(shù)字進(jìn)行適當(dāng)?shù)娜∩?,例如需要?.125四舍五入保留到小數(shù)點(diǎn)后兩位的結(jié)果應(yīng)該為1.13。但是,如果你無(wú)論使用%還是使用format的格式化形式,得到的結(jié)果和預(yù)期的卻大相近庭,如下:
print("{:.2f}".format(1.125))
>>> 1.12
print("%.2f" % 1.125)
>>> 1.12
從上面的結(jié)果可以看到,將1.125保留兩位小數(shù)的結(jié)果為1.12, 并非1.13,這是為什么呢?請(qǐng)繼續(xù)往下看(四舍六入五雙)...
- 四舍六入五雙
精確n位數(shù)字或保留n位小數(shù),采用如下的規(guī)則(以保留n位小數(shù)為例):
a. 四舍: 保留n位小數(shù),若第n+1位≤4, 則舍去;
b. 六入: 保留n位小數(shù),若第n+1位≥6, 則第n位進(jìn)1;
c. 五雙: 保留n位小數(shù),若第n+1位=5, 若 如果第n+1位后面沒(méi)有任何數(shù)字, 則第n位數(shù)字為偶數(shù)就舍去n+1位,第n位數(shù)字為奇數(shù)則進(jìn)1;
如果第n+1位后還存在不為0的任何數(shù)字,則第n位數(shù)字無(wú)論是奇數(shù)還是偶數(shù)都進(jìn)1。
print("{:.2f}".format(1.125))需要保留兩位小數(shù)(n=2),則觀察小數(shù)點(diǎn)后第二位數(shù)字2的后一位(n+1位)。第n+1為5,且5后沒(méi)有其它數(shù)字,第n位2為偶數(shù),所以直接舍去,故最后的結(jié)果為1.12。
- 十進(jìn)制轉(zhuǎn)二進(jìn)制
a. 十進(jìn)制整數(shù)轉(zhuǎn)二進(jìn)制: 除2取余,逆序排列;
b. 十進(jìn)制浮點(diǎn)數(shù)轉(zhuǎn)二進(jìn)制: 乘基取整;
- 不精確尾數(shù)
十進(jìn)制浮點(diǎn)數(shù)的小數(shù)部分在轉(zhuǎn)換為二進(jìn)制的時(shí)候有可能出現(xiàn)無(wú)限小數(shù)無(wú)法乘盡的情況。但計(jì)算機(jī)無(wú)法處理無(wú)限小數(shù),會(huì)將十進(jìn)制浮點(diǎn)數(shù)對(duì)應(yīng)的二進(jìn)制數(shù)最多保留53位,53位后面的數(shù)據(jù)直接截?cái)啵瑥亩鴮?dǎo)致在將二進(jìn)制浮點(diǎn)數(shù)轉(zhuǎn)換回十進(jìn)制的時(shí)候出現(xiàn)不精確的現(xiàn)象。
- Decimal
如上述所言,因?yàn)橛械母↑c(diǎn)數(shù)可能存在不精確尾數(shù)的情況,導(dǎo)致一些需要精密計(jì)算的數(shù)據(jù)難以處理,每個(gè)不精確的小數(shù)累積起來(lái)可能造成嚴(yán)重的數(shù)據(jù)失信,所以可以使用python標(biāo)準(zhǔn)模塊decimal模塊下的Decimal類進(jìn)行處理。
Decimal提供了十進(jìn)制浮點(diǎn)數(shù)的精密運(yùn)算支持,使用Decimal所表示的浮點(diǎn)數(shù)即為精確小數(shù),不存在不精確尾數(shù)的情況。此外,Decimal還提供了諸多用于"取舍"的模式,如ROUND_UP(遠(yuǎn)離0取舍),ROUDN_DOWN(趨向0取舍), ROUND_HALF_UP(四舍五入,half即表示5的意思,up表示遠(yuǎn)離0的方向)等。
Decimal(value)中value可以傳遞整數(shù), 字符串, 元組, 浮點(diǎn)數(shù)或另一個(gè)Decimal對(duì)象,推薦使用字符串傳遞參數(shù)給value,如直接傳遞浮點(diǎn)數(shù)給value依舊會(huì)存在不精確尾數(shù)。
所以想要實(shí)現(xiàn)"四舍五入"的功能即可使用Decimal,如下所示:
from decimal import Decimal, ROUND_HALF_UP
print(Decimal("1.125").quantize(Decimal(".00"), rounding=ROUND_HALF_UP))
>>> 1.13
- __str__ 和__repr__
格式化字符參數(shù)中有一個(gè)%r, 此處的r即是調(diào)用__repr__魔法方法,其功能和__str___類似,二者區(qū)別如下:
class Animal:
def __init__(self, name):
self.name = name
def __str__(self):
return "我是" + self.name
def __repr__(self):
return "我的名字是" + self.name
if __name__ == "__main__":
cat = Animal("小黑")
print(cat)
如果在Animal一類中既沒(méi)有定義__str__ 也沒(méi)有定義__repr__魔法方法,那么print輸出打印cat對(duì)象將得到cat對(duì)象的內(nèi)存地址,類似<__main__.Animal object at 0x0000017F2D384970>;
如果只定義了__str__ 或__repr__中的一個(gè),那么print(cat)都將輸出其對(duì)應(yīng)的返回值,類似返回"我是小黑"或"我的名字是小黑";
如果既定義了__str__和__repr__兩個(gè)魔法方法,那么print(cat)將輸出__str__對(duì)應(yīng)的返回值;__repr__和__str__的區(qū)別在于,一個(gè)側(cè)重用戶,一個(gè)側(cè)重開發(fā)人員。如果定義了__repr__方法,那么在一些編輯器(Jupyter Notebook, JypyterLab)或終端中直接傳遞對(duì)象名即可獲取__repr__的返回值,如下圖所示:
5.用法詳解
(1). name
(1.1) 不指定name
1) 單個(gè)數(shù)據(jù)
print("|我是%s" % "王暖暖|")
>>> |我是王暖暖|
2) 多個(gè)數(shù)據(jù): 使用元組
print("|我是%s,今年%d歲|" % ("王暖暖", 18))
>>> |我是王暖暖,今年18歲|
(1.2) 指定name: 使用字典
1) 單個(gè)數(shù)據(jù)
print("|我是%(name)s|" % {"name": "王暖暖"})
>>> |我是王暖暖|
2) 多個(gè)數(shù)據(jù)
print("|我叫%(name)s, 今年%(age)d歲。|" % {"name": "王暖暖", "age": 18})
>>> |我叫王暖暖, 今年18歲。|
(1.3) 單個(gè)數(shù)據(jù)對(duì)應(yīng)多個(gè)占位
# 元組內(nèi)元素?cái)?shù)量必須和占位符數(shù)量統(tǒng)一
print("|我是 %s %s %s!!!|" % ("王暖暖", "王暖暖", "王暖暖"))
# 使用字典則必須指明鍵值對(duì)
print("|我是 %(name)s %(name)s %(name)s!!!|" % ({"name": "王暖暖"}))
>>> |我是王暖暖 王暖暖 王暖暖!!!|
(2). flags + width
# 依次按flags中"+", "-", " ", "0"結(jié)合width=10演示
(2.1) 字符串:
print("|%+10s|" % "王暖暖")
>>> | 王暖暖| # 字符串右對(duì)齊
print("|%-10s|" % "王暖暖")
>>> |王暖暖 | # 字符串左對(duì)齊
print("|% 10s|" % "王暖暖")
>>> | 王暖暖| # 字符串右對(duì)齊
print("|%010s|" % "王暖暖")
>>> | 王暖暖| # 字符串右對(duì)齊
(2.2) 正整數(shù)
print("|%+10d|" % 26)
>>> | +26| # 正整數(shù)右對(duì)齊,正數(shù)加正號(hào)
print("|%-10d|" % 26)
>>> |26 | # 正整數(shù)左對(duì)齊,正數(shù)無(wú)符號(hào)
print("|% 10d|" % 26)
>>> | 26| # 正整數(shù)右對(duì)齊,正數(shù)前加空格
print("|%010d|" % 26)
>>> |0000000026| # 正整數(shù)右對(duì)齊,正數(shù)無(wú)符號(hào),以0填充
(2.3) 負(fù)整數(shù)
print("|%+10d|" % -26)
>>> | -26| # 負(fù)整數(shù)右對(duì)齊,負(fù)數(shù)加負(fù)號(hào)
print("|%-10d|" % -26)
>>> |-26 | # 負(fù)整數(shù)左對(duì)齊,負(fù)數(shù)加負(fù)號(hào)
print("|% 10d|" % -26)
>>> | -26| # 負(fù)整數(shù)右對(duì)齊,負(fù)數(shù)加負(fù)號(hào)
print("|%010d|" % -26)
>>> |-000000026| # 負(fù)整數(shù)右對(duì)齊,負(fù)數(shù)加負(fù)號(hào), 符號(hào)和數(shù)字之前填充0
(2.4) 正浮點(diǎn)數(shù)
# 如未指定浮點(diǎn)數(shù)精度,默認(rèn)保留6位小數(shù),其余均用空格填充(如指定0則用0填充);若width小于浮點(diǎn)數(shù)的數(shù)位則width無(wú)效。
print("|%+10f|" % 2.2)
>>> | +2.200000| # 正浮點(diǎn)數(shù)加正號(hào)右對(duì)齊,小數(shù)部分以0填充
print("|%-10f|" % 2.2)
>>> |2.200000 | # 正浮點(diǎn)數(shù)左對(duì)齊,小數(shù)點(diǎn)后為空格
print("|% 10f|" % 2.2)
>>> | 2.200000| # 正浮點(diǎn)數(shù)右對(duì)齊,浮點(diǎn)數(shù)前為空格
print("|%010f|" % 2.2)
>>> |002.200000| # 正浮點(diǎn)數(shù)右對(duì)齊,小數(shù)點(diǎn)前以0填充
(2.5) 負(fù)浮點(diǎn)數(shù)
print("|%+10f|" % -2.2)
>>> | -2.200000| # 負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)右對(duì)齊,小數(shù)部分以0填充
print("|%-10f|" % -2.2)
>>> |-2.200000 | # 負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)左對(duì)齊,小數(shù)點(diǎn)后為空格
print("|% 10f|" % -2.2)
>>> | -2.200000| # 負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)右對(duì)齊,其余用空格填充
print("|%010f|" % -2.2)
>>> |-02.200000| # 負(fù)浮點(diǎn)數(shù)加負(fù)號(hào)右對(duì)齊,其余用0填充,注意符號(hào)在最左側(cè)
(2.6) 詳詳解
1) print("|%+15f|" % 22.6)
>>> | +22.600000|
a) 未指定保留位數(shù),故小數(shù)點(diǎn)后占6位,用0填充;
b) 小數(shù)點(diǎn)占1位,"+"號(hào)占1位,共2位;
c) 小數(shù)點(diǎn)前系數(shù)"22"占2位;
c) 其余均用空格填充,故空格占5位,總計(jì)15位.
2) print("|%+015f|" % 22.6)
>>> |+0000022.600000|
a) 未指定保留位數(shù),故小數(shù)點(diǎn)后占6位,用0填充;
b) 小數(shù)點(diǎn)占1位,"+"號(hào)占1位,共2位;
c) 小數(shù)點(diǎn)前系數(shù)22占2位;
d) 其余均用0填充,故小數(shù)點(diǎn)前的"0"占5位,總計(jì)15位;
e) 注意: 此處同時(shí)使用了"+"和"0",配合二者的功能使用。
3) print("|%+15.3f|" % 22.66)
>>> | +22.660|
a) 指定保留小數(shù)位數(shù)為3位,不足的用0填充;
b) 其余的用空格填充;
4) print("|%+015.3f|" % 22.66)
>>> |+0000000022.660|
a) 指定保留小數(shù)位數(shù)為3位,不足的用0填充;
b) 其余的用"0"填充;
(3). precision
(3.1) 字符串
如果待格式化數(shù)據(jù)為字符串則表示字符串截取
print("|%.2s|" % "python")
>>> |py|
(3.2) 浮點(diǎn)數(shù)
保留小數(shù)點(diǎn)后.precision數(shù)字
print("|%(num).2f|" % {"num": 0.145})
>>> |0.14|
print("|%(num).2f|" % {"num": 1.145})
>>> |1.15|
print("|%(num).2f|" % {"num": 2.145})
>>> |2.15|
print("|%(num).2f|" % {"num": 3.145})
>>> |3.15|
注意: 此處列舉的數(shù)字均存在"不精確尾數(shù)"和"四舍六入五雙"兩種情況
(3.3) 科學(xué)計(jì)數(shù)
print("|%.3f用科學(xué)計(jì)數(shù)法表示寫作%.2E|" % (40.125, 40.125))
>>> |40.125用科學(xué)計(jì)數(shù)法表示寫作4.01E+01|
解析: 先將40.125轉(zhuǎn)為科學(xué)計(jì)數(shù)法形式: 4.0125*10^1(4.0125乘以10的1次方);
而后再對(duì)4.0125精確到小數(shù)點(diǎn)后位, 即4.01;
最后用e或E分隔系數(shù)和指數(shù),即為4.01E+01
(3.4) g/G模式: 詳見如下...
(4). type
(1) s: 字符串
print("|我是%s|" % "王暖暖") >>> |我是王暖暖|
(2) d, i, u: 十進(jìn)制數(shù)字
print("|我最喜歡的十進(jìn)制數(shù)是%d|" % 26)
print("|我最喜歡的十進(jìn)制數(shù)是%i|" % 26)
print("|我最喜歡的十進(jìn)制數(shù)是%u|" % 26)
>>> |我最喜歡的十進(jìn)制數(shù)是26|
(3) f: 浮點(diǎn)數(shù)(默認(rèn)保留6位小數(shù))
# 保留小數(shù)詳情見上...
print("|這是一個(gè)浮點(diǎn)數(shù)%f|" % 2.26)
>>> |這是一個(gè)浮點(diǎn)數(shù)2.260000|
(4) e, E: 科學(xué)計(jì)數(shù)
print("|%f用科學(xué)計(jì)數(shù)法表示寫作%e|" % (4.145, 4.145))
>>> |4.145000用科學(xué)計(jì)數(shù)法表示寫作4.145000e+00|
print("|%.3f用科學(xué)計(jì)數(shù)法表示寫作%.2E|" % (4.145, 4.145))
>>> |4.145用科學(xué)計(jì)數(shù)法表示寫作4.14E+00|
(2) o: 八進(jìn)制
print("|十進(jìn)制%(num)d對(duì)應(yīng)的八進(jìn)制數(shù)為%(num)o|" % {"num": 26})
>>> |十進(jìn)制26對(duì)應(yīng)的八進(jìn)制數(shù)為32|
(3) x, X: 十六進(jìn)制
print("|十進(jìn)制%(num)d對(duì)應(yīng)的十六進(jìn)制數(shù)為%(num)x|" % {"num": 26})
>>> |十進(jìn)制26對(duì)應(yīng)的十六進(jìn)制數(shù)為1a|
print("|十進(jìn)制%(num)d對(duì)應(yīng)的十六進(jìn)制數(shù)為%(num)X|" % {"num": 26})
>>> |十進(jìn)制26對(duì)應(yīng)的十六進(jìn)制數(shù)為1A|
(6) g, G詳見如下...
(7) c: unicode字符
print("|%d對(duì)應(yīng)的unicode字符為:%c|" % (226, 226))
>>> |226對(duì)應(yīng)的unicode字符為:a|
(12) %r: representation, 調(diào)用傳入對(duì)象的__repr__方法的返回值
經(jīng)測(cè)試,無(wú)論是使用%s類型還是%r類型,使用JypyterLab均直接輸出格式化結(jié)果,其二者的卻別在于,使用%r模式會(huì)在字符串?dāng)?shù)據(jù)的左右兩側(cè)加上'', 詳見下圖...
(11) %%: 轉(zhuǎn)義%。
如果有待格式化數(shù)據(jù)需要輸出百分號(hào)(%),需要使用%%進(jìn)行轉(zhuǎn)義
print("|I'm %d%% sure.|" % 100) >>> |I'm 100% sure.|
二、str.format()格式化
1.語(yǔ)法
"{[index][:[[fill]align][sign][#][0][width][grouping_option][.precision][type]]}".format()
2.參數(shù)詳解
(1) index: 待格式化字符的索引或鍵,若占位符數(shù)量和參數(shù)數(shù)量不一致時(shí)必須指定索引;
(2) fill: 填充字符,可為任意字符;
(3) align: 對(duì)齊方式(常配合width使用),可選:
# 和Excel中輸入文本和數(shù)字的默認(rèn)對(duì)齊方式一致
1) <: 左對(duì)齊(字符串默認(rèn)對(duì)齊方式);
2) >: 右對(duì)齊(數(shù)字默認(rèn)對(duì)齊方式);
3) ^: 居中對(duì)齊;
4) =: 內(nèi)容右對(duì)齊,將符號(hào)(+或-)放置在填充字符的左側(cè),僅對(duì)數(shù)字類型有效;
(4) sign: 有無(wú)符號(hào),可選:
1) +: 正數(shù)加正號(hào),負(fù)數(shù)加負(fù)號(hào);
2) -: 正數(shù)不變,負(fù)數(shù)加負(fù)號(hào)(默認(rèn));
3) 空格: 正數(shù)加空格,負(fù)數(shù)加負(fù)號(hào);
(5) #:
a. 對(duì)于整數(shù),在輸出值分別添加響應(yīng)的0b, 0o, 0x前綴;
b. 對(duì)于浮點(diǎn)數(shù)和復(fù)數(shù), 在輸出值保留小數(shù)點(diǎn)符號(hào);
c. 在g/G模式下,保留末尾的0;
(6) 0: 若未設(shè)置對(duì)齊方式,在width前加一個(gè)0將為數(shù)字類型啟用感知正負(fù)號(hào)的零填充,等同于設(shè)置fill為0, align為"=";
(7) width: 字段總寬度(十進(jìn)制整數(shù)), 所有前綴,分隔符和其它格式化字符之和;
(8) grouping_option: 設(shè)置分組(分隔):
1) ",": 使用逗號(hào)作為千位分隔符;
2) "_": 使用_作為分隔符:
a. 對(duì)于十進(jìn)制數(shù), 使用_作為千位分隔符;
b. 對(duì)于b, o, x/X,使用_每4位數(shù)插入一個(gè)下劃線;
(9) .precision(十進(jìn)制數(shù)):
a. 整數(shù)型不允許設(shè)置precison, 如果設(shè)置即被轉(zhuǎn)換為浮點(diǎn)數(shù);
b. 浮點(diǎn)型表示小數(shù)點(diǎn)"后"顯示多少位小數(shù)位數(shù);
c. 以g或G格式化表示在小數(shù)點(diǎn)"前后"共顯示多少個(gè)數(shù)位;
d. 字符型表示截取多少個(gè)字符;
(10) {{或}}: 轉(zhuǎn)義{或},當(dāng)需要輸出{或}的使用使用;
(11) type: 詳見如下...
3.type:
format()格式化與%格式化的type大同小異,以下盡挑重點(diǎn)講解
(1) b: binary, 二進(jìn)制;
(3) g: general formatting, 詳見如下...
(4) G: General formatting, 詳見如下...
4.genaral formatting
g和G模式是我花時(shí)間最多去琢磨的一個(gè)點(diǎn),所以單獨(dú)把它抽離出來(lái)講解。這里的g字母是general的縮寫,百度可以查到一些資料,說(shuō)某種條件下, g模式等同于f模式或e模式。但是,實(shí)際上,g與f, e這兩種模式還有一些區(qū)別,詳見如下:
(1) 給定精度
對(duì)于給定精度 p >= 1,會(huì)將數(shù)值舍入到p個(gè)有效數(shù)位,再將結(jié)果以小數(shù)或科學(xué)計(jì)數(shù)法進(jìn)行格式化,精度0會(huì)被視為等價(jià)于精度1。
1) 對(duì)于浮點(diǎn)數(shù)
文章標(biāo)題:萬(wàn)字長(zhǎng)文,Python字符串格式化講解
文章起源:http://m.fisionsoft.com.cn/article/djcjpdi.html


咨詢
建站咨詢
