亲宝软件园·资讯

展开

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

总结

占位符的使用非常常见, 也非常实用, 它可以很好的帮助我们解决一些字符串格式化的问题, 变换出多种用法, 一些常用的占位符大家可以记住, 以便提升编程效率。

加载全部内容

相关教程
猜你喜欢
用户评论