Python 字串格式化運算子



字串格式化運算子

Python 最酷的特性之一是字串格式化運算子 %。這個運算子是字串獨有的,彌補了缺乏C語言 printf() 系列函式的不足。C語言中使用的格式說明符 (%d %c %f %s 等) 在字串中用作佔位符。

示例

下面是一個簡單的例子:

print ("My name is %s and weight is %d kg!" % ('Zara', 21))

它將產生以下 **輸出**:

My name is Zara and weight is 21 kg!

與字串格式化運算子一起使用的符號

以下是可與 % 一起使用的完整符號列表:

序號 格式符號及轉換

1

%c

字元

2

%s

在格式化之前透過 str() 進行字串轉換

3

%i

帶符號十進位制整數

4

%d

帶符號十進位制整數

5

%u

無符號十進位制整數

6

%o

八進位制整數

7

%x

十六進位制整數(小寫字母)

8

%X

十六進位制整數(大寫字母)

9

%e

指數表示法(帶小寫 'e')

10

%E

指數表示法(帶大寫 'E')

11

%f

浮點實數

12

%g

%f 和 %e 中較短的一個

13

%G

%f 和 %E 中較短的一個

其他支援的符號和功能列在下面的表格中:

序號 格式符號及轉換

1

*

引數指定寬度或精度

2

-

左對齊

3

+

顯示符號

4

<sp>

在正數前留一個空格

5

#

新增八進位制前導零 ('0') 或十六進位制前導 '0x' 或 '0X',取決於使用了 'x' 還是 'X'。

6

0

用零(而不是空格)從左邊填充

7

%

'%%' 將留下單個字面量 '%'

8

(var)

對映變數(字典引數)

9

m.n.

m 是最小總寬度,n 是顯示小數點後數字的位數(如果適用)

字串格式化運算子示例

示例:使用 % 運算子格式化整數和字串

在下面的示例中,name 是一個字串變數,age 是一個整型變數。它們的值分別插入到字串中的 %s 和 %d 格式說明符處。這些符號被內插到 % 運算子前面的元組中的值。

name="Rajesh"
age=23
print ("my name is %s and my age is %d years" % (name, age))

它將產生以下 **輸出**:

my name is Rajesh and my age is 23 years

示例:使用 % 運算子指定寬度/填充

您可以指定整數和浮點數物件的寬度。此處,整數物件 a、b 和 c 將在格式化字串中佔用 5 個字元的寬度。額外的空格將填充到左邊。

a=1
b=11
c=111
print ("a=%5d b=%5d c=%5d" % (a, b, c))

它將產生以下 **輸出**:

a= 1 b= 11 c= 111

示例:使用 % 運算子處理浮點數精度

在下面的示例中,浮點變數的寬度指定為 6 個字元,小數點後有三位數字。

name="Rajesh"
age=23
percent=55.50
print ("my name is %s, age %d and I have scored %6.3f percent marks" % (name, age, percent))

它將產生以下 **輸出**:

my name is Rajesh, age 23 and I have scored 55.500 percent marks

示例:使用 % 運算子進行字串填充

也可以指定字串的寬度。預設對齊方式為右對齊。對於左對齊,請在寬度前加負號。

name='TutorialsPoint'
print ('Welcome To %20s The largest Tutorials Library' % (name, ))
print ('Welcome To %-20s The largest Tutorials Library' % (name, ))

它將產生以下 **輸出**:

Welcome To       TutorialsPoint The largest Tutorials Library
Welcome To TutorialsPoint       The largest Tutorials Library

示例:使用 % 運算子截斷長字串

在格式中新增 '. ' 以截斷較長的字串。

name='TutorialsPoint'
print ('Welcome To %.5s The largest Tutorials Library' % (name, ))

它將產生以下 **輸出**:

Welcome To Tutor The largest Tutorials Library
python_string_formatting.htm
廣告