python 占位符格式化
Alexstraze 人气:0字符串格式化里的符号很多,本文详细的介绍一下,以便随时查找。
%s :字符串的格式化,也是最常用的
%d :格式化整数,也比较常用
%c :格式化字符及ASCII码
%u :格式化无符号整型
%f :格式化浮点数,可以指定小数后面的精度
%e :使用科学计数法格式化浮点数
%o :格式化无符号八进制数
%x :格式化无符号十六进制数
%p :十六进制数格式化变量地址
%g :%e和%f的简写
演示一下各个占位符格式化使用时的效果
'''格式化字符串''' var_s = '%s' % '我是一个字符串' print(var_s) '''格式化整数''' var_d = '%d' % 10 print(var_d) '''格式化字符''' var_c = '%c' % "w" print(var_c) # 格式化字符,这里必须是一个字符不能是字符串,否则就会出现下面的错误。 var_c = '%c' % "water" print(var_c) # var_c = '%c' % "water" # TypeError: %c requires int or char '''格式化无符号整型''' var_u = '%u' % 123 print(var_u) '''格式化浮点数''' var_f = '%.2f' % 2.3 print(var_f) '''科学计数法格式化浮点数''' var_e = '%e' % 2.3333333 print(var_e) '''格式化无符号八进制数''' var_o = '%o' % 100 print(var_o) # 得到的结果是144 # 可以使用int函数将得到的八进制再转换成十进制结果是100,和我们的预想是一样的。 print(int('144',8)) '''格式化无符号十六进制数''' var_x = '%x' % 100 print(var_x) # 得到的结果是64 print(int('64',16)) # 同理,再转换回来结果是100 '''十六进制格式化变量地址''' var_p = '%p' % '144' print(var_p) # ValueError: unsupported format character 'p' (0x70) at index 1 # 执行%p的格式化时发现是不支持的,头一回用竟然不支持。 '''%e与%f的缩写''' var_g = '%.3g' % 2.12 print(var_g)
指定占位符宽度
>>> print ("Name : %10s, Age : %9d, Height: %8.2f"%("tom", 37, 2.29)) Name : tom, Age : 37, Height : 2.29
格式比较难看, 下面我们来做一下对齐
指定占位符宽度 - 左对齐
>>> print ("Name : %-10s, Age : %-9d, Height : %-8.2f"%("tom", 37, 2.29)) Name : tom , Age : 37 , Height : 2.29 备注:格式化可选标志符, 可选参数 + 右对齐;正数前加正好,负数前加负号; - 左对齐;正数前无符号,负数前加负号; 空格 右对齐;正数前加空格,负数前加负号; 0 右对齐;正数前无符号,负数前加负号;用0填充空白处 如: -10s, 表示10个字符串位置, 左对齐,后面用空格填充
指定占位符 - 用0当占位符
>>> print ("Name : %-10s, Age : %09d, Height : %08.2f"%("tom", 37, 2.29)) Name : tom , Age : 000000037, Height : 00002.29
总结
占位符的使用非常常见, 也非常实用, 它可以很好的帮助我们解决一些字符串格式化的问题, 变换出多种用法, 一些常用的占位符大家可以记住, 以便提升编程效率。
加载全部内容