Python 字串格式化

Python

「字串格式化」能處理複雜的字串格式問題,Python 支援兩種方式,一種是 Python 2.6 之前的舊格式化方式「% 操作符」,另一種是 Python 2.6 之後導入的新格式化方式 str.format()。

% 操作符

可以使用 % 操作符,可以將資料格式化,它的基本語法 ' ' % (' '),說明如下:

  • % 右邊的參數:
    • 是要帶入 % 左邊一對 ' ' 單引號內的資料。
    • 只有一個參數可省略 () 括號。
  • % 左邊一對 ' ' 單引號內,依右邊的參數型態與數量,填入下表對應的類型碼。
Pythod 常用類型碼 (就是佔位符)
類型碼 說明 備註
%% 在字串中顯示 %  
%d 10 進位整數  
%f 10 進位浮點數 可指定整數與小數位數,例如 5.2f
%e, %E 10 進位浮點數,並使用科學記號  
%o 8 進位整收  
%x, %X 16 進位整數  
%s str() 方式  
%c 字元  
%r repr() 方式  

範例程式:

text = '我叫 %s' % 'Jacky'
print(text)
'''
我叫 Jacky
'''
 
text = '我叫 %s,性別 %s' % ('Jacky', 'F')
print(text)
'''
我叫 Jacky,性別 F
'''
 
text = '我叫 %s,性別 %s,身高 %d,體重 %d,體重增加了 1%%' % ('Jacky', 'F', 172, 52)
print(text)
'''
我叫 Jacky,性別 F,身高 172,體重 52,體重增加了 1%
'''

str.format()

基本語法使用 {} 和 : 代替操作符 % 來進行格式化。

  • {} 無類型碼:
    • 指定索引位置或關鍵字 (也可混合,但索引位置必須在前)。
  • {:} 可使用類型碼:
    • : 左邊為索引位置或關鍵字。
    • : 右邊可指定 %s、%d ... 類型碼,例如 {索引位置、關鍵字:%s}
  • {} 內的其它符號:
    • ^ 置中、< 置左、> 置右。
    • + 在正數前顯示 + 符號;- 在負數前顯示 - 負號。
  • 使用連續兩個 {{ 或 }} 來顯示 { 或 }

範例程式:

# 不指定索引位置,依順序
print('{} {} {} {}'.format('A', 'B', 1, 2))
'''
A B 1 2
'''
 
# 指定索引位置
print('{2} {3} {0} {1}'.format('A', 'B', 1, 2))
'''
1 2 A B
'''
 
# 指定關鍵字
print('{str1} {num1} {str2} {num2}'.format(str1 = 'A', str2 = 'B', num1 = 1, num2 = 2))
'''
A 1 B 2
'''
 
# 混合指定索引位置與關鍵字 (但索引位置必須在前)
print('{1} {0} {num1} {num2}'.format('A', 'B', num1 = 1, num2 = 2))
'''
B A 1 2
'''
 
# 使用連續兩個 {{ 或 }} 來顯示 { 或 }
print('{} {{ }}'.format('A'))
'''
A { }
'''
 
# 置中並於正數值顯示 + 符號
print('{:^+10.2f}|'.format(3.3))
'''
  +3.30   |
'''

參考

發表留言