python字符串格式化輸出

在python2中一直使用形如: “%s ....? %d” % (str, ... , intNum)格式化字符串的。這是python從C系列借鑒過來的語法,但是這種語法對于C這種靜態語言足夠快足夠好,但是對于擁有很多先進數據結構的python來說就有點心有余來力不足了。為什么這么說呢?python的幾把利刃:元組,列表,字典,集合等不適合用這種結構表示,這些利刃大多元素用下標表示,在這種結構中寫出來很丑陋,不信你試試。

不管怎么樣,這種表示方法還是必須掌握的,大多數情況下表示起來還是特別快速的。

字符串格式化代碼:

格式描述

%% 百分號標記

%c 字符及其ASCII碼

%s 字符串

%d 有符號整數(十進制)

%u 無符號整數(十進制)

%o 無符號整數(八進制)

%x 無符號整數(十六進制)

%X 無符號整數(十六進制大寫字符)

%e 浮點數字(科學計數法)

%E 浮點數字(科學計數法,用E代替e)

%f 浮點數字(用小數點符號)

%g 浮點數字(根據值的大小采用%e或%f)

%G 浮點數字(類似于%g)

%p 指針(用十六進制打印值的內存地址)

%n 存儲輸出字符的數量放進參數列表的下一個變量中

看著這么的多格式,其實常用的也就那么幾個,總結一些只需要記住: %d, %s, %f就OK了,其實等需要用的時候查找就可以了,畢竟我們大腦的資源是很寶貴的,可不能全用來記這些死板的東西

再來看看《Python基礎編程》中對格式化輸出的總結:

(1) %字符:標記轉換說明符的開始

(2) 轉換標志:-表示左對齊;+表示在轉換值之前要加上正負號;“”(空白字符)表示正數之前保留空格;0表示轉換值若位數不夠則用0填充

(3) 最小字段寬度:轉換后的字符串至少應該具有該值指定的寬度。如果是*,則寬度會從值元組中讀出。

(4) 點(.)后跟精度值:如果轉換的是實數,精度值就表示出現在小數點后的位數。如果轉換的是字符串,那么該數字就表示最大字段寬度。如果是*,那么精度將從元組中讀出。


下面來看看python3主打的格式化函數format().

字符串的format函數可以通過以下幾個方式靈活的完成字符串格式化:

1. 通過位置標號

{0}表示第一個元素, {1}表示第二個元素, {2}表示第三個元素,以此類推。。。

注意在這里的順序是按照format中的參數順序而言的,在字符串中{0},{1}位置隨便。


2.通過關鍵字參數

3.通過屬性和下標


但是不知道字典怎么回事,和正常的鍵值索引不一樣,貌似字符串不需要加引號,加引號反而出錯了。。。


各位可以自己試一下。當鍵值為整數的時候可以順利輸出,鍵值為字符串時不需要加‘’。

4.格式化限定符

{0:0.2f} {1:3d},在序號后面加上格式符就可以了,不用加%哦。

5.填充與對齊(更加方便的語法,雖然用到的比較少)

填充常跟對齊一起使用

^、<、>分別是居中、左對齊、右對齊,后面帶寬度

:號后面帶填充的字符,只能是一個字符,不指定的話默認是用空格填充


是不是很方便,注意<>^號后面加寬度哦。

好啦,print和格式化的用法基本講完了。大家掌握的怎么樣啦

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容