1. 程式人生 > 其它 >python三種字串格式化

python三種字串格式化

字串格式化

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%

2format函式格式化

基本語法是:

<模板字串>.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%

3f 字串的花括號內寫上變數名,直譯器會自動將變數的值的字串形式替換

基本語法是:

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