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%

猜你喜欢

转载自www.cnblogs.com/zzsy/p/12194177.html