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!

与字符串格式运算符一起使用的符号

以下是可以与 % 一起使用的完整符号集的列表 -

格式符号 描述

%c

字符

%s

在格式化之前通过 str() 进行字符串转换

%i

有符号十进制整数

%d

有符号十进制整数

%u

无符号十进制整数

%o

八进制整数

%x

十六进制整数(小写字母)

%X

十六进制整数(大写字母)

%e

指数表示法(小写 'e')

%E

指数表示法(大写 'E')

%f

浮点实数

%g

%f 和 %e 中的较小者

%G

%f 和 %E 的较短者

下表列出了其他支持的符号和功能 -

格式符号 描述

*

参数指定宽度或精度

-

左对齐

+

显示标志

<sp>

在正数前留空格

#

添加八进制前导零 ( '0' ) 或十六进制前导 '0x' 或 '0X',具体取决于使用的是 'x' 还是 'X'。

0

从左到右用零(而不是空格)填充

%

'%%' 会留下一个文本 '%'

(var)

映射变量 (字典参数)

m.n.

m 是最小总宽度, n 是小数点后要显示的位数(如果 appl)。

字符串格式化运算符示例

示例:使用 % 运算符格式化整数和字符串

在以下示例中,name 是一个字符串,age 是一个整数变量。它们的值分别插入到字符串中的 %s 和 %d 格式规范符号处。这些符号值到前面的 Tuples 中的 % 运算符中的值。


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

示例:使用 % 运算符指定宽度/填充

您可以指定 integer 和 float 对象的宽度。这里整数对象 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

示例:使用 % 运算符的浮点精度处理

在以下示例中,将 float 变量的宽度指定为具有 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

示例:使用 % 运算符的字符串填充

还可以指定字符串的宽度。默认对齐方式为 right。对于左对齐方式,请为 width 指定负号。


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

它将产生以下输出 -

Welcome To       QikepuCom The largest Qikepu Library
Welcome To QikepuCom       The largest Qikepu Library

示例:使用 % 运算符截断长字符串

添加 '.' 更改为格式以截断较长的字符串。


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

它将产生以下输出 -

Welcome To Qikep The largest Qikepu Library