字串格式化運算子(%),非常類似於C 語言裡面的printf()函式的字串格式化,甚至所用的符號都一樣,都用百分號(%),並且支援所有printf()式的格式化操作。語法如下:
format_string % string_to_convert
format_string為格式標記字串,形式為“%cdoe”;string_to_convert 為要格式化的字串,如果是兩個以上,則需要用小括號括起來。
字串格式化符號
格式化符號 | 說明 |
%c | 轉換成字元(ASCII 碼值,或者長度為一的字串) |
%s | 轉換成字串,優先用str()函式進行字串轉換 |
%d | 轉成有符號十進位制數 |
%u | 轉成無符號十進位制數 |
%o | 轉成無符號八進位制數 |
%x | (Unsigned)轉成無符號十六進位制數 |
%e | 轉成科學計數法 |
%% | 輸出% |
%X | (Unsigned)轉成無符號十六進位制數,轉換後16進位制字元大寫,和%e類似(轉換後小寫) |
字串格式化輸出舉例:
charA = 65 charB = 66 print("ASCII碼65代表:%c" % charA) print("ASCII碼66代表:%c" % charB) Num1 = 0xEF3 Num2 = 0xAB03 print('轉換成十進位制分別為:%u和%u' % (Num1, Num2)) Num3 = 1500000 print('轉換成科學計數法為:%e' % Num3)
輸出:
ASCII碼65代表:A
ASCII碼66代表:B
轉換成十進位制分別為:3827和43779
轉換成科學計數法為:1.200000e+06
格式化字元還可以配合輔助符號一起使用,非常方便。
輔助符號,如下表所示:
輔助符號 | 說明 |
* | 定義寬度或者小數點精度 |
- | 用做左對齊 |
+ | 在正數前面顯示加號(+) |
<sp> | 在正數前面顯示空格 |
# | 在八進位制數前面顯示零(0),在十六進位制前面顯示“0x”或者“0X”(取決於用的是“x”還是“X”) |
0 | 顯示的數字前面填充“0”而不是預設的空格 |
m.n | 是顯示的最小總寬度,n 是小數點後的位數 |
注意:輔助符號要在百分號(%)和格式化符號之間。
輔助符號舉例:
Num1 = 108 print("%#X" % Num1) Num2 = 234.567890 print("%.2f" % Num2)
輸出:
0X6C
234.57