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

