字符串格式化
1 %
字符串格式化
語法格式如下:
%[(name)][flags][width][.precision]typecode
(name)
可選,用於選擇指定的key
flags
可選,可供選擇的值有,注意只有在和數值類型的typecode
配合才起作用+
, 右對齊,正數前加正號,負數前加負號-
, 左對齊,正數前無符號,負數前加負號空格
, 右對齊,正數前加空格,負數前加負號0
, 右對齊,正數前無符號,復數前加負號;用0
填充空白處
width
,可選字符串輸出寬度.precision
可選,小數點后保留位數,注意只有在和數值類型的typecode
配合才起作用typecode
必選- %,當字符串中存在格式化標志時,需要用 %% 表示一個百分號
# '%s'作為槽位和 % 號后提供的值按順序一一對應 # 百分號用%號轉義下 res = '%s計算機的內存利用率為%s%%' % ('11:15', 75) print(res) # % 后是字典時,可以通過name指定key對應的值 res = '%(time)s計算機的內存利用率為%(percent)s%%' % {'time':'11:15', 'percent': 75} print(res) # 輸出兩位數的月份,例如01,02 res = '%02d' % 8 print(res) 08 # 保留2為小數 res = '%(time)s計算機的內存利用率為%(percent).2f%%' % {'time':'11:15', 'percent': 75.123} print(res) 11:15 計算機的內存利用率為 75.12%
2 format
函數格式化
基本語法是:
<模板字符串>.format(<逗號分隔的參數>)
在模板字符串中使用 {}
代替以前的 %
作為槽位
'{}計算機的內存利用率為{}%'.format('11:15', 75)
當 format 中的參數使用位置參數提供時,{}
中可以填寫參數的整數索引和參數一一對應
'{0}計算機的內存利用率為{1}%'.format('11:15', 75)
當 format 中的參數使用關鍵字參數提供時,{}中可以填寫參數名和參數一一對應
'{time}計算機的內存利用率為{percent}%'.format(time='11:15', percent=75)
{<參數序號>:<格式控制標記>} 其中格式控制標記格式如下 [fill][align][sign][#][0][width][,][.precision][type]
- fill 【可選】空白處填充的字符
- align 【可選】對齊方式(需配合 width 使用)
-
- <,內容左對齊
- >,內容右對齊(默認)
- =,內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即使:符號 + 填充物 + 數字
- ^,內容居中
- sign 【可選】有無符號數字
- +,正號加正,負號加負;
- -,正號不變,負號加負;
- 空格 ,正號空格,負號加負;
- #
【可選】對於二進制、八進制、十六進制,如果加上#,會顯示 0b/0o/0x,否則不顯示
- , 【可選】為數字添加分隔符,如:1,000,000
- width 【可選】格式化位所占寬度
- .precision 【可選】小數位保留精度
# 輸出兩位數的月份,例如01,02 res = '{:0>2}'.format(8) print(res) 08 # 保留2為小數 res = '{time}計算機的內存利用率為{percent:.2%}'.format(time='11:15', percent=0.75123) print(res) 11:15 計算機的內存利用率為 75.12%
3 f 字符串的花括號內寫上變量名,解釋器會自動將變量的值的字符串形式替換
基本語法是:
literal_char{expression[:format_spec]}
literal_char
普通字符expression
表達式,變量或函數。。format_spec
格式字符串,規則同上面的 format 字符串
直接在 f 字符串的花括號內寫上變量名,解釋器會自動將變量的值的字符串形式替換
item = '11:15' percent = 75 f'{time}計算機的內存利用率為{percent}%' '11:15計算機的內存利用率為75%'
# 輸出兩位數的月份,例如01,02 month = 8 res = f'{month:0>2}' print(res) 08 # 保留2為小數 time = '11:15' percent = 0.75123 res = f'{time}計算機的內存利用率為{percent:.2%}' print(res) 11:15計算機的內存利用率為75.12% 包含運算和函數的 f 字符串 num = -1 print(f'{num+1=}') num+1=0