|
python 的字串格式規劃大略有 2 種,期中 format 可分為字串型與函數型
(一) 使用 c 語言的 %
(二) 使用 "{ }".format
(三) 使用 format
使用 c 語言的 % 格式
"%[+/-][總位數][.小數位數][資料型態]" % 資料
+/- 格式碼 |
說明 |
範例 |
結果 |
+ |
右靠 (+/- 不寫,內定右靠),數值會留下+/- |
"%+5d" % 3 |
+3 |
- |
左靠 |
"%-5d" % 3 |
3 |
[總位數][.小數位數]
浮點數 格式碼 |
說明 |
範例 |
結果 |
總位數 |
欄寬。(浮點數內定 6 位小數點) |
"%10f" % 3.985 |
3.985000 |
.小數位數 |
小數點位數 |
"%.2f" % 3.985 |
3.98 |
總位數.小數位數 |
欄寬與小數點位數 |
"%10.2f" % 3.985 |
3.98 |
[資料型態]
[資料型態] 格式碼 |
說明 |
範例 |
結果 |
%% |
在字串中顯示% |
"%%%4d" % 23 "% 23" |
% 23
% 23 |
%d |
以10 進位整數方式輸出 |
"%d" % 0b1101 |
13 |
%f |
將浮點 數以10進位方式輸出 |
"%% %7.3f" % 1.7835 |
% 1.784 |
%e, %E |
將浮點 數以10進位方式輸出,並使用科學記號 |
"%e" % 178.35 |
1.783500+e02 |
%o |
以8進 位整數方式輸出 |
"%o" % 17 |
21 |
%x, %X |
將整 數以16進位方式輸出 |
"%X" % 17 |
11 |
%s |
使用str()將字串輸出 |
"%s" % 23 |
23 |
%c |
以字元方式輸出 |
"%c" % 97 |
a |
範例:
程式碼 |
說明 |
結果 |
print("%d %c" % (0x12 , 65)) |
0x12 是16 進制,以%d(整數)輸出。
65 以%c(字元)方式輸出。 |
18 A |
print( "%10d" % 3.985 ) |
以10 進位整數(無條件去小數)方式輸出。 |
3 |
print( "%10.3f") |
格式字串後面沒有 % 連接資料,則視為一般字串。 |
%10.3f |
str.format
{ [參數編號] : [ [位置] 及寬度] [.精確度] [型態字元] }
[參數編號] |
說明 |
範例 |
結果 |
正整數 |
代換資料的編號 |
"{0} {1}{0}".format("ABC","123")
"{1}--{2}--{3}".format("XY","A","BC","57") |
ABC 123ABC
A--BC--57 |
[ [位置] 及寬度] |
說明 |
範例 |
結果 |
< |
左靠 (字串內定左靠) |
"{:6}{:<}".format("A" , "BC")
"{:6}{:<}".format(12 , 34) |
A BC
1234 |
^ |
置中 |
|
|
> |
右靠 (數值內定右靠) |
"{:6}{:>6}".format("A" , "BC")
"{:6}{:>6}".format(12 , 34) |
A BC
12 34 |
[寬度] [.精確度][型態字元] |
說明 |
範例 |
結果 |
8.3f |
欄寬8,小數點至第3位 |
"{:8.1f}".format(42.139) |
42.1 |
10d |
欄寬 10 整數 |
|
|
6s |
欄寬 6 字串 |
|
|
3c |
欄寬 3 字元 |
|
|
03d |
欄寬 3 整數。(不足補 0) |
|
|
範例:
程式碼 |
說明 |
結果 |
print("{:4}/{:2}/{:02}".format(2019,10,3)) |
利用前導 0 ,可使數字補零。 |
2019/10/03 |
x = "{}/{:4d}"
print(x.format("24","00")) |
設定 x 為字串格式
利用 x 格式輸出資料。 |
3 |
print( "%10.3f") |
格式字串後面沒有 % 連接資料,則視為一般字串。 |
%10.3f |
"{}{}".format("AB","12")
"{0}{1}".format("AB","12") #與上等效 |
{} 裡面不寫編號,默認由 0 自動編號。
{} {} 相當於 {0} {1} |
"AB12" |
"{1}{0}{1}".format("AB","12") |
{0} 對應到 "AB",{1} 對應到 "12" |
"12AB12" |
"*{:8.2f}--{:10.4f}".format(12.3456,12.3456789) |
{:8.2f} 表示使用欄寬 8,小數點 2 位的浮點數。{:10.4f} 表示使用欄寬10,小數點 4 位的浮點數。
大括號 {} 外的字元會被輸出。 |
* 12.35-- 12.3457 |
format(訊息,格式)
格式同上
指令 |
結果 |
說明 |
format(9.83521,">10.2f") |
9.84 |
使用10格,右靠,取浮點數四捨五入至小數第 2 位 |
format("ABC","^6s") |
|
使用 6 格,置中,取得字串 "ABC" |
|