常常會遇到好不容易寫好程式,但是輸出的時候沒辦法按照自己想要的格式,或是間隔來輸出,這時需要用到的就是格式化輸出,格式化輸出就是調整排版的一個形式。
格式化方式
格式化字串有三種方式:
- 格式化字串(Formatted String Literals)
- 字串的 format()
- 字串插值 (string interpolation)
一、格式化字串(Formatted String Literals)
格式化字串是使用f或F來控制字串,使用方式是在字串前方加入f,並將變數放入大括號{ }中。
如果要控制變數產生可以利用冒號:然後輸入要控制的條件
在傳遞浮點數時利用.位數f來表示小數點後的位數
如果傳遞的是整數則可利用d來控制整數位的格數,傳遞的是字串則可直接輸入格數
在《終端機2》的圖片中可以發現到一個點代表一個空格,這是因為Python的索引值都是從0開始計算。
什麼是索引值?
可以在下面這張圖看到索引值每一種食物都有代表自己的索引值,索引值有兩種一算方式,一種是從頭開始計算,另一種是從後面計算回來,要特別注意頭是從0開始,後面則是從-1開始。
所以在《終端機2》的圖片中{name:15}代表的是0-15總共16個間格,{age:3d}代表的是0,1,2,3總共4個間格。
二、字串的 format()
str.format( )的方法很簡單,大括號內的值和關鍵字會被取代為傳遞給str.format()的物件,基本用法如下:
第一行print大括號的地方也可以不填入索引號,python會自動依序帶入第一個和接下來的值,如果要換順序也可以利用索引號進行調換。
三、字串插值 (string interpolation)
字串插值是利用百分比%符號來替換字元,簡單的形式是'string’% values,字串中所有的%會被值所代替。
對齊文字及指定寬度
1. '<'
箭頭靠左,代表強制字串在範圍內靠左(預設為此)
2. '>'
箭頭靠右,代表強制字串在範圍內靠右
3. '^'
箭頭朝上,代表強制字串在範圍內居中
還可以再前方加入要替換間格的符號
結論
字串插值 (string interpolation)是比較舊式的用法,我會比較推薦大家使用前兩種方法來控制輸出,不過還是可以使用自己最為習慣的輸出方式,關於字串的控制還有許多可以更改自行設定的地方,但是我認為目前為止已經足夠使用大部分的輸出模式,在計算間格時這邊要注意的一點就是中文字是全形字而英文和數字則是半形字,所以在控制版面時,會遇到無法對齊的問題。