語法拾遺1:python文本字符串格式化輸出總結(jié)

本文主要總結(jié)了format格式化輸出文本的用法荷愕。

  1. 替換字段使用{}括起來玻墅,如果需要輸出結(jié)果包含{}則應(yīng)使用{{}}雙花括號轉(zhuǎn)義山林。

    In [1]: "{{test's string}}".format()
    Out[1]: "{test's string}"
    
  2. 使用未命名字段名替換和指定參數(shù)替換
    一般用法既可以使用未命名字段也可以指定參數(shù)润脸,兩種可單獨使用也能混用漠魏,但是注意不能同時使用手動指定編號和自動編號:

    # 混合使用法舉例
    In [5]: "{foo} {} {bar} {}".format(2, 4, foo=1, bar=3)
    Out[5]: '1 2 3 4'
    
    # 通過索引指定時可以不管參數(shù)的順序
    In [6]: "{foo} {1} {bar} {0}".format(4, 2, foo=1, bar=3)
    Out[6]: '1 2 3 4'
    
    # 還可以使用引用
    In [8]: import math
    In [9]: tmp = "模塊{mod.__name__}中的圓周率π的默認(rèn)值為{mod.pi}"
    In [10]: tmp.format(mod=math)
    Out[10]: '模塊math中的圓周率π的默認(rèn)值為3.141592653589793'
    
  3. 基本轉(zhuǎn)換標(biāo)識符的使用

  • 三個標(biāo)志s倔矾、ra分別是指使用strreprascii進行轉(zhuǎn)換嘆號!之前的字符串:

     ```py
     In [15]: "{str!s} {str!r} {str!a}".format(str="π")
     Out[15]: "π 'π' '\\u03c0'"
     ```
    
  • 格式說明符冒號:的使用柱锹,一般其后跟類型說明符哪自。比如表示定點數(shù)的f以及表示二進制的b

     ```py
     # 浮點小數(shù)格式
     In [22]: "The number is {:f}".format(2018)
     Out[22]: 'The number is 2018.000000'
     # 二進制格式
     In [23]: "The number is {:b}".format(2018)
     Out[23]: 'The number is 11111100010'
     ```
    
  • 其他的格式表示類型如下表:

類型 代表格式
b 用二進制表示整數(shù)
c 解讀整數(shù)為Unicode碼
d 十進制整數(shù)
e 科學(xué)計數(shù)表示法
E e禁熏,可表示指數(shù)
f 指定位數(shù)的小數(shù)表示
F f壤巷,對特殊值infnan使用大寫表示
g 自動選擇表示為小數(shù)或科學(xué)計數(shù),小數(shù)時至少一位
G g瞧毙,但使用大寫表示指數(shù)和特殊值
n g胧华,但跟隨地區(qū)區(qū)域顯示位數(shù)分隔符
o 整數(shù)表示為八進制
s 默認(rèn)寄症,表示文本字符串
x 十六進制,其中使用小寫字母
X x, 其中使用大寫字母
% 表示為百分比
  • :后面用整數(shù)表示寬度和精度矩动,需注意數(shù)字和文本的對齊位置不同有巧,表示精度時前面要加小數(shù)點.

     ```py
     # 寬度
     In [24]: "{:10}".format(2)
     Out[24]: '         2'
     
     In [25]: "{:10}".format("2")
     Out[25]: '2         '
     
     # 精度
     In [30]: "{:.2f}".format(math.pi)
     Out[30]: '3.14'
     
     # 寬度加精度
     In [31]: "{:10.5}".format(math.pi)
     Out[31]: '    3.1416'
     ```
    
  • :后面跟,逗號表示插入千位數(shù)分隔符(跟隨地區(qū)格式)

    In [37]: '先掙他一個{:,}'.format(10**10)
    Out[37]: '先掙他一個10,000,000,000'
    
  • 指定左對齊、右對齊和居中悲没,可在:后分別使用<篮迎、>^:

    三種對齊格式

     ```py
     # :冒號后可接填充符,0則為用0填充
     In [40]: "{:w^12}".format(" site ")
     Out[40]: 'www site www'
     In [41]: "{:0<10}".format(1234)
     Out[41]: '1234000000'
     ```
    
  1. 在對齊符合后也可使用+,=,#等分別表示在字符前顯示正號示姿,分離符號和文本柑潦,以及用不同進制顯示,由于不常用在此不做介紹峻凫。

綜合運用案例:打印購物小票

# 根據(jù)指定的寬度打印格式化小票
width = int(input('輸入寬度: '))

price_width = 10
item_width = width - price_width

header_tmpl = '{{:{}}}{{:>{}}}'.format(item_width, price_width)
tmpl = '{{:{}}}{{:>{}.2f}}'.format(item_width, price_width)

print('-' * width)

print(header_tmpl.format('商 品', '價 格'))

print('·' * width)

print(tmpl.format('面  粉', 6.5))
print(tmpl.format('韭  菜', 3.5))
print(tmpl.format('雞  蛋', 10.0))
print(tmpl.format('蝦  仁', 18.6))
print(tmpl.format('醬  油', 12))

print('-' * width)

最終顯示結(jié)果為:

輸入寬度: 30
------------------------------
商 品                     價 格
······························
面  粉                    6.50
韭  菜                    3.50
雞  蛋                    10.00
蝦  仁                    18.60
醬  油                    12.00
------------------------------

以上部分內(nèi)容參考自《python編程基礎(chǔ)第三版》渗鬼,感謝閱讀,如果有遺漏歡迎留言補充荧琼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末譬胎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子命锄,更是在濱河造成了極大的恐慌堰乔,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脐恩,死亡現(xiàn)場離奇詭異镐侯,居然都是意外死亡,警方通過查閱死者的電腦和手機驶冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門苟翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人骗污,你說我怎么就攤上這事崇猫。” “怎么了需忿?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵诅炉,是天一觀的道長。 經(jīng)常有香客問我屋厘,道長涕烧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任汗洒,我火速辦了婚禮议纯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仲翎。我一直安慰自己痹扇,他們只是感情好铛漓,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鲫构,像睡著了一般浓恶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上结笨,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天包晰,我揣著相機與錄音,去河邊找鬼炕吸。 笑死伐憾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赫模。 我是一名探鬼主播树肃,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瀑罗!你這毒婦竟也來了胸嘴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤斩祭,失蹤者是張志新(化名)和其女友劉穎劣像,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摧玫,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡耳奕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了诬像。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屋群。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颅停,靈堂內(nèi)的尸體忽然破棺而出谓晌,到底是詐尸還是另有隱情,我是刑警寧澤癞揉,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站溺欧,受9級特大地震影響喊熟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜姐刁,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一芥牌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聂使,春花似錦壁拉、人聲如沸谬俄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溃论。三九已至,卻和暖如春痘昌,著一層夾襖步出監(jiān)牢的瞬間钥勋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工辆苔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留算灸,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓驻啤,卻偏偏與公主長得像菲驴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子骑冗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 前言 最先接觸編程的知識是在大學(xué)里面沐旨,大學(xué)里面學(xué)了一些基礎(chǔ)的知識森逮,c語言,java語言磁携,單片機的匯編語言等褒侧;大學(xué)畢...
    oceanfive閱讀 3,044評論 0 7
  • 本文轉(zhuǎn)載自:http://blog.csdn.net/lonely_fireworks/article/detai...
    NeWolf閱讀 427評論 0 1
  • 寶寶,媽媽好想你谊迄!你一定要加油闷供!媽媽在外面也加油!明天媽媽可以進去給你喂一次奶统诺,終于可以再看見你歪脏,抱抱你了!寶寶粮呢,...
    在霧霾的日子里見彩虹閱讀 201評論 0 0
  • 今天早上非常困婿失,站樁的時候困困的,一開始身體流就來了啄寡,腿抖豪硅,胳膊抖動,胳膊前后揮挺物,胳膊慢慢抬高懒浮,做環(huán)抱自己和擴胸的...
    珍妮花_Jennifer閱讀 138評論 0 0