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
广告