python基础知识之格式化
格式化
%s — 字符串类型
% 是一个占位, s代表的字符串类型;
%d|%i — 数字类型
以上2个都不够强大,介绍个更强大的format
格式化输出——format
提到Python中的格式化输出方法,一般来说有以下两种方式:
至于哪种方式好,对于我来说,用了.format()之后就再也不想用%了!!!
一 、基本用法
二 、关键词定位
三 、可变参数
既然format()是一个方法,那是不是也接受*args和**kwargs形式的传参呢,答案是肯定的。
四 、固定宽度
format()可以指定输出宽度为多少,当字符串长度少于设定值的时候,默认用空格填充:
当然除了空格,我们也可以选择其他字符来填充,譬如我想打印一条分割线,便可以选择通过-来填充:
五、对齐方式
format()支持左对齐,右对齐,居中,分别对应<,>,^,具体怎么使用我们看实例:
六、数字格式化
常用的示例如下:
取小数点后两位
num = 3.1415926
print('小数点后两位:{:.2f}'.format(num)) 结果:小数点后两位:3.14
带+/-输出
num = -3.1415926
print('带正/负符号:{:+.2f}'.format(num)) 结果:带正/负符号:-3.14
转为百分比
num = 0.34534
print('百分比:{:.2%}'.format(num)) 结果:百分比:34.53%
科学计数法
num = 12305800000
print('科学计数法:{:.2e}'.format(num)) 结果:科学计数法:1.23e+10
,分隔
num = 12305800000
print('","分隔:{:,}'.format(num)) 结果:","分隔:12,305,800,000
转为二进制
num = 15
print('二进制:{:b}'.format(num)) 结果:二进制:1111
十六进制
num = 15
print('十六进制:{:x}'.format(num)) 结果:十六进制:f
八进制
num = 15
print('八进制:{:o}'.format(num)) 结果:八进制:17
七、输出花括号
当然,如果我们想输出的{}的时候怎么办呢?python给咱们提供了方法:
最后的最后、花式玩法
其实结合以上这些特性,我们可以来点好玩点,譬如说自己写一个进度条:
import time
length = 1000
for i in range(1, length + 1):
percent = i / length
bar = '▉' * int(i // (length / 50))
time.sleep(0.01)
print('\r进度条:|{:<50}|{:>7.1%}'.format(bar, percent), end='')
print('\n')
效果如下:
转义%%
如果我们字符串中想要显示单独的%就需要用来个%%来转义,不然程序会认为那是一个占位
num = input('>>>')
s= '目前学习进度:%s%%'%num
print(s)
>>>10
目前学习进度:10%