詳解Python的字符串格式化
Python在字符串格式化的兩種方式
- %
- format
%,關(guān)于整數(shù)的輸出
- %o:oct 八進(jìn)制
- %d:dec 十進(jìn)制
- %x:hex 十六進(jìn)制
print("整數(shù):%d,%d,%d" % (1, 22.22, 33))
print("整數(shù)不足5位,左邊補(bǔ)空格 %5d " % 22)
print("整數(shù)不足5位,左邊補(bǔ)0 %05d " % 22)
print("整數(shù)不足5位,右邊補(bǔ)空格 %-5d " % 22, "end")
print("八進(jìn)制 %o" % 222)
print("十六進(jìn)制 %x" % 12)執(zhí)行結(jié)果
整數(shù):1,22,33 整數(shù)不足5位,左邊補(bǔ)空格 22 整數(shù)不足5位,左邊補(bǔ)0 00022 整數(shù)不足5位,右邊補(bǔ)空格 22 end 八進(jìn)制 336 十六進(jìn)制 c
- 包含知識(shí)點(diǎn) 當(dāng)你有多個(gè)參數(shù)需要格式化輸出的時(shí)候,需要用元組 ;注意不能用列表因?yàn)榱斜硎强勺兊?nbsp;
(1,2,3) - 若傳入的是浮點(diǎn)數(shù)如
22.55,最后輸出的是22,不會(huì)四舍五入哦 - 若傳入了字符串 ,是會(huì)報(bào)錯(cuò)滴!
'22'
%,關(guān)于浮點(diǎn)數(shù)的輸出
print("浮點(diǎn)數(shù):%f,%f " % (1, 22.22))
print("浮點(diǎn)數(shù)保留兩位小數(shù):%.2f " % 22.222)
print("浮點(diǎn)數(shù)保留兩位小數(shù),寬5位,不足補(bǔ)0:%05.2f " % 2.222)執(zhí)行結(jié)果
浮點(diǎn)數(shù):1.000000,22.220000 浮點(diǎn)數(shù)保留兩位小數(shù):22.22 浮點(diǎn)數(shù)保留兩位小數(shù),寬5位,不足補(bǔ)0:02.22
包含知識(shí)點(diǎn)
默認(rèn)保留6位小數(shù),可通過(guò) 這種形式指定小數(shù)位,2代表保留兩位 .2f
%,關(guān)于字符串的輸出
print("字符串:%s,%s,%s" % (1, 22.22, [1, 2]))
print("字符串不足5位,左邊補(bǔ)空格 %5s " % '2')
print("字符串不足5位,右邊補(bǔ)空格 %-5s " % '2', "end")
print("字符串寬10位,截取兩位 %10.2s " % "hello.world")執(zhí)行結(jié)果
字符串:1,22.22,[1, 2] 字符串不足5位,左邊補(bǔ)空格 2 字符串不足5位,右邊補(bǔ)空格 2 end 字符串寬10位,截取兩位 he
包含知識(shí)點(diǎn) 可以傳入任意類(lèi)型的數(shù)據(jù),譬如整數(shù)、浮點(diǎn)數(shù)、列表、元組甚至字典,他都會(huì)自動(dòng)轉(zhuǎn)成字符串類(lèi)型
format格式化輸出
相對(duì)基本格式化輸出采用 % 的方法,format()功能更強(qiáng)大,該函數(shù)把字符串當(dāng)成一個(gè)模板,通過(guò)傳入的參數(shù)進(jìn)行格式化,并且使用大括號(hào) {} 作為特殊字符代替 %
format,位置匹配(最常用)
- 不帶編號(hào),即“{}”
- 帶數(shù)字編號(hào),可調(diào)換順序,即“{1}”、“{2}”
- 帶關(guān)鍵字,即“{a}”、“{tom}”
print("今天是{}的{}生日會(huì)".format("帥哥", 18))
print("今天是{1}的{0}生日會(huì)".format("帥哥", 18))
print("今天是{0}的{1}生日會(huì)".format("帥哥", 18))
print("今天是{name}的{key}生日會(huì)".format(22, 11, name="帥哥", key=18))
print("今天是{name}的{key}生日會(huì),接著上{}".format("test", name="帥哥", key=18))
# 以下會(huì)報(bào)錯(cuò)
print("今天是{0}的{}生日會(huì)".format("帥哥", 18))
print("今天是{name}的{key}生日會(huì),接著上{}".format( name="帥哥", key=18,"test"))執(zhí)行結(jié)果
今天是帥哥的18生日會(huì) 今天是18的帥哥生日會(huì) 今天是帥哥的18生日會(huì) 今天是帥哥的18生日會(huì) 今天是帥哥的19生日會(huì),接著上test
包含知識(shí)點(diǎn) 當(dāng)你只寫(xiě)了 時(shí),默認(rèn)按傳入的值的順序讀取{}
當(dāng)你寫(xiě)了數(shù)字編號(hào) ,則可以讀取對(duì)應(yīng)位置上的值,從0開(kāi)始{1}
當(dāng)你指定了關(guān)鍵字 ,如果不指定 name=xxx ,則會(huì)報(bào)錯(cuò){name}
當(dāng)你指定了關(guān)鍵字,又只寫(xiě)了 時(shí),你傳入帶有關(guān)鍵字指定的值必須寫(xiě)在后面,類(lèi)似函數(shù)(形參在前,實(shí)參在后){}
和 {1} 是不能共存的{}
總結(jié)
當(dāng)用到format時(shí),一個(gè)字符串里面的格式化輸出只用一種方式,不要混合使用,容易出問(wèn)題且沒(méi)有必要
format,指定數(shù)據(jù)類(lèi)型輸出
print("整數(shù){:d}".format(123))
print("浮點(diǎn)數(shù){:5.2f}".format(123.19))
print("字符串{:s}".format('123'))
print("八進(jìn)制{:o}".format(12))
print("十六進(jìn)制{:x}".format(13))執(zhí)行結(jié)果
整數(shù)123 浮點(diǎn)數(shù)123.19 字符串123 八進(jìn)制14 十六進(jìn)制d
包含知識(shí)點(diǎn)
- 指定了 ,則只能傳字符串值,如果傳其他類(lèi)型值不會(huì)自動(dòng)轉(zhuǎn)換
:s - 當(dāng)你不指定類(lèi)型時(shí),你傳任何類(lèi)型都能成功,如無(wú)特殊必要,可以不用指定類(lèi)型
- 如果要結(jié)合數(shù)字編號(hào)和關(guān)鍵字使用可以如下
print("關(guān)鍵字 {num:d}".format(num=123))
print("數(shù)字編號(hào) {0:d},{1:s}".format(123, "123"))執(zhí)行結(jié)果
關(guān)鍵字 123 數(shù)字編號(hào) 123,123
format,位數(shù)補(bǔ)齊
print('默認(rèn)左對(duì)齊,寬度為10,不足補(bǔ)空格:{:10}'.format("123"), "end")
print('左對(duì)齊,寬度為10,不足補(bǔ)空格:{:<10}'.format("123"), "end")
print('右對(duì)齊,寬度為10,不足補(bǔ)空格:{}{:>10}'.format("start", "123"))
print('右對(duì)齊,寬度為10,取兩位小數(shù),不足補(bǔ)0:{:0>10.2f}'.format(22.22555))執(zhí)行結(jié)果
默認(rèn)左對(duì)齊,寬度為10,不足補(bǔ)空格: 123 end 左對(duì)齊,寬度為10,不足補(bǔ)空格:123 end 右對(duì)齊,寬度為10,不足補(bǔ)空格:start 123 右對(duì)齊,寬度為10,取兩位小數(shù),不足補(bǔ)0:0000022.23
包含知識(shí)點(diǎn)
<默認(rèn)左對(duì)齊可以不用就加- 當(dāng)你不指定數(shù)據(jù)類(lèi)型時(shí),傳什么類(lèi)型的值都能成功格式化輸出
format,拓展使用
print("總是顯示符號(hào):{:0>+8.2f},{:0>+8.2f}".format(3.14, -3.14))
print("百分?jǐn)?shù):{:%} {:.2%}".format(3 / 7, 3 / 7))
print("逗號(hào)分隔,一般用在金錢(qián) {:,}".format(12345678)執(zhí)行結(jié)果
總是顯示符號(hào):000+3.14,000-3.14 百分?jǐn)?shù):42.857143% 42.86% 逗號(hào)分隔,一般用在金錢(qián) 12,345,678
+ 包含知識(shí)點(diǎn) 的意義在于,當(dāng)我們輸出的是正數(shù)也能看到符號(hào)
%百分?jǐn)?shù)是真的百分?jǐn)?shù),不是單單加個(gè) ;譬如0.25667,變成百分?jǐn)?shù)就是 25.67%
固定隔三位數(shù)字;傳入字符串會(huì)報(bào)錯(cuò)哦
到此這篇關(guān)于詳解Python的字符串格式化的文章就介紹到這了,更多相關(guān)Python字符串格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)獲取某天是某個(gè)月中的第幾周
這篇文章主要介紹了Python實(shí)現(xiàn)獲取某天是某個(gè)月中的第幾周,本文代碼實(shí)現(xiàn)獲取指定的某天是某個(gè)月中的第幾周、周一作為一周的開(kāi)始,需要的朋友可以參考下2015-02-02
Python 利用CSV模塊處理數(shù)據(jù)的實(shí)現(xiàn)實(shí)例
CSV文件的一個(gè)主要優(yōu)點(diǎn)是有很多程序可以存儲(chǔ),轉(zhuǎn)換和處理純文本文件,本文主要介紹了Python 利用CSV模塊處理數(shù)據(jù)的實(shí)現(xiàn)實(shí)例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
educoder之Python數(shù)值計(jì)算庫(kù)Numpy圖像處理詳解
這篇文章主要為大家介紹了educoder之Python數(shù)值計(jì)算庫(kù)Numpy圖像處理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
python3.10及以上版本編譯安裝ssl模塊的詳細(xì)過(guò)程
最近搞安裝ssl模塊每天都弄到很晚,所以這里給大家整理下,這篇文章主要給大家介紹了關(guān)于python3.10及以上版本編譯安裝ssl模塊的詳細(xì)過(guò)程,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
python中如何實(shí)現(xiàn)徑向基核函數(shù)
這篇文章主要介紹了python中如何實(shí)現(xiàn)徑向基核函數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python實(shí)現(xiàn)備份文件實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)備份文件的方法,可實(shí)現(xiàn)針對(duì)各類(lèi)常見(jiàn)擴(kuò)展名的文件進(jìn)行備份的功能,需要的朋友可以參考下2014-09-09
卸載所有通過(guò)pip安裝的Python包的方法總結(jié)(Windows系統(tǒng))
這篇文章主要介紹了卸載所有通過(guò)pip安裝的Python包的方法總結(jié)(Windows系統(tǒng)),文中通過(guò)代碼示例和圖文講解的非常詳細(xì),并具有一定的參考價(jià)值,需要的朋友可以參考下2024-08-08
python Django框架實(shí)現(xiàn)web端分頁(yè)呈現(xiàn)數(shù)據(jù)
這篇文章主要介紹了python Django框架實(shí)現(xiàn)web端分頁(yè)呈現(xiàn)數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10

