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