Python格式化输出
方式一
第一种方式与我们所熟悉的C语言格式控制类似:
- 输出字符串
print("Name:%s"%('Jack'))
- 输出整数
print("Age:%d"%(12))
- 输出浮点数
print("Height:%f"%(160.5))
- 输出指定位数的浮点数
print("Heihgt:%.2f"%(160.5))
- 带有占位符的输出
print("Name:%8s"%('Jack')) #这是默认右端对齐
print("Name:%-8s"%('Jack')) #左端对齐
运行结果
- 使用0作为占位符的方式
print("Age:%08d"%(12))
效果
- 多种控制方式一起使用
print("Name:%s---Age:%d---Height:%.2f"%('Jack',12,160.5))
效果
- 使用字典方式
print("Name:%(name)s---Age:%(age)d---Height:%(height).2f"% {'name':'Jack','age':12,'height':160.5} )
效果
常用的格式符如下:
%s 字符串
%r 字符串
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数
%f 浮点数
方式二
上面的方式已经可以应付各种格式化输出了,但是现在更为流行的控制方式是使用format来控制字符串:
他主要是使用 {} 来代替 %
- 使用位置
print("Name:{0}---Age:{1}---Height:{2}".format('Jack',12,160.5))
#没有对浮点数进行位数控制
print("Name:{0}---Age:{1}---Height:{2:.4f}".format('Jack',12,160.5))
#对浮点数的位数进行控制
print("Name:{0}---Age{1}---Name2{0}".format('Jack',12))
#重复使用某一个值
运行结果:
- 使用键值方式
print("Name:{name}---Age{age}".format(name='Jack',age=12))
- 填充
print("Num:{:>8}".format(8))
#默认方式右对齐
print("Num:{:0>8}".format(8))
#右对齐使用0填充
print("Num:{:$>8}".format(8))
#右对齐使用特殊符号填充
print("Num:{:<8}".format(8))
#左填充
效果
初次之外有的时候我们需要对数值比较大的时候进行分隔,例如:
print("¥{:,}".format(1234567890))
效果
两种方式都可以实现各种格式控制的方式,其中format方式python自带的字符串格式控制方式,很灵活,俄日第一种方式跟C语言比较相似,C语言使用的比较熟练的同学可能会更喜欢使用。