Python 字串格式化
「字串格式化」能處理複雜的字串格式問題,Python 支援兩種方式,一種是 Python 2.6 之前的舊格式化方式「% 操作符」,另一種是 Python 2.6 之後導入的新格式化方式 str.format()。
% 操作符
Python 2.6 之前的舊語法,未來的版本可能不會支援這種方式,建議使用
str.format()
。可以使用 %
操作符,可以將資料格式化,它的基本語法 ' ' % (' ')
,說明如下:
%
右邊的參數:- 是要帶入
%
左邊一對' '
單引號內的資料。 - 只有一個參數可省略
()
括號。
- 是要帶入
%
左邊一對' '
單引號內,依右邊的參數型態與數量,填入下表對應的類型碼。
類型碼 | 說明 | 備註 |
---|---|---|
%% | 在字串中顯示 % | |
%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()
Python 2.6 之後導入的新格式化方式,也是建議的方式。
基本語法使用 {}
和 :
代替操作符 % 來進行格式化。
{}
無類型碼:- 指定索引位置或關鍵字 (也可混合,但索引位置必須在前)。
{:}
可使用類型碼::
左邊為索引位置或關鍵字。:
右邊可指定 %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 |
'''
參考
本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.