字符串格式化操作符(%),非常类似于C 语言里面的printf()函数的字符串格式化,甚至所用的符号都一样,都用百分号(%),并且支持所有printf()式的格式化操作。语法如下:
format_string % string_to_convert
format_string为格式标记字符串,形式为“%cdoe”;string_to_convert 为要格式化的字符串,如果是两个以上,则需要用小括号括起来。
字符串格式化符号
格式化符号 | 说明 |
%c | 转换成字符(ASCII 码值,或者长度为一的字符串) |
%s | 转换成字符串,优先用str()函数进行字符串转换 |
%d | 转成有符号十进制数 |
%u | 转成无符号十进制数 |
%o | 转成无符号八进制数 |
%x | (Unsigned)转成无符号十六进制数 |
%e | 转成科学计数法 |
%% | 输出% |
%X | (Unsigned)转成无符号十六进制数,转换后16进制字符大写,和%e类似(转换后小写) |
字符串格式化输出举例:
charA = 65charB = 66print("ASCII码65代表:%c" % charA)print("ASCII码66代表:%c" % charB)Num1 = 0xEF3Num2 = 0xAB03print('转换成十进制分别为:%u和%u' % (Num1, Num2))Num3 = 1500000print('转换成科学计数法为:%e' % Num3)
输出:
ASCII码65代表:A
ASCII码66代表:B
转换成十进制分别为:3827和43779
转换成科学计数法为:1.200000e+06
格式化字符还可以配合辅助符号一起使用,非常方便。
辅助符号,如下表所示:
辅助符号 | 说明 |
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号(+) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零(0),在十六进制前面显示“0x”或者“0X”(取决于用的是“x”还是“X”) |
0 | 显示的数字前面填充“0”而不是默认的空格 |
m.n | 是显示的最小总宽度,n 是小数点后的位数 |
注意:辅助符号要在百分号(%)和格式化符号之间。
辅助符号举例:
Num1 = 108print("%#X" % Num1)Num2 = 234.567890print("%.2f" % Num2)
输出:
0X6C
234.57