相當實用的Python格式化字符串

格式化字符串(string formatting)是以指定輸出參數格式相對位置來“美化”字符串。輸出參數格式包括數字的小數點位數、字符串大小寫等,相對位置標註出被格式化的詞是在句中的位置。比如:

print('It costs %.2f.' %(123.456))
It costs 123.46.

其中 %.2f 是 123.456 的輸出參數格式,.2f 代表保留小數點兩位,而 %.2f 所在的位置在 costs 後面,意思說將 123.456 變成 123.46 後插在 costs 後面。

格式化字符串有四種方法:

  1. 用 % 字符 (上面用的)
  2. 用 $ 字符
  3. 用 format() 函數
  4. 用 f-string

 

本文中主要以下面這句話舉例子,即“在 2020 年 3 月 4 日,阿里巴巴的市值爲 553789 百萬美元”。

s = 'On 04 Mar 2020, the market cap of Alibaba is 553789 mio USD.'

首先定義市值(Mcap)和貨幣單位(curr)兩個變量。

Mcap = 553789
curr = 'USD'

下面開始展示四種格式化的方法。

 

1. 用 % 字符格式化

print('The market cap of Alibaba is %d mio %s.' %(Mcap, curr))
The market cap of Alibaba is 553789 mio USD.

該方法的核心範式是:

 

步驟:

  1. 首先寫句子;
  2. 再用 % 加小括號,裏面列出要被格式化的變量名;
  3. 最後在句子一一對應變量名的地方寫出 %x(d 代表數字,s 代表字符串,等等)。

2. 用 $ 字符格式化

from string import Template

info = dict(Mcap=Mcap, curr=curr)
print(Template('The market cap of Alibaba is $Mcap mio $curr.').substitute(info))
The market cap of Alibaba is 553789 mio USD.

該方法的核心範式是:

 

在此方法下,我們需要將變量名和變量值作爲鍵和值,創建一個字典。

步驟:

  1. 首先要調用 Template 庫函數並將句子傳給它;
  2. 再把字典傳入 substitute() 函數;
  3. 最後在句子一一對應變量名的地方寫出 $k(k 代表字典中的鍵)。

3. 用 format 函數格式化

print('The market cap of Alibaba is {} mio {}.'.format(Mcap, curr))
The market cap of Alibaba is 553789 mio USD.

該方法的核心範式是:

 

步驟:

  1. 首先寫句子;
  2. 再用 format() 函數,裏面列出要被格式化的變量名;
  3. 最後在句子一一對應變量名的地方只用寫出 {}。

4. 用 f-string 方法格式化

print(f'The market cap of Alibaba is {Mcap} mio {curr}.')
The market cap of Alibaba is 553789 mio USD.

該方法的核心範式是:

步驟:

  1. 首先寫出句子,以 f'   ' 或 F'   ' 的形式;
  2. 然後在句子只用寫出 {v},其中 v 是要被格式的變量。

 

當決定用哪種格式化時,通常我們評估它是否簡單直觀而且符合自己的習慣,比如

  • 那些有 C 語言背景的使用者就偏向用 “%” 字符
  • 那些偏好標準化的使用者就偏向用 "$" 字符
  • 那些偏好個性化的使用者就偏向用 format 函數

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章