格式化

%s — 字符串类型

% 是一个占位, s代表的字符串类型;

python format 怎么用 python,format_十六进制

%d|%i — 数字类型

python format 怎么用 python,format_字符串_02

以上2个都不够强大,介绍个更强大的format

格式化输出——format

提到Python中的格式化输出方法,一般来说有以下两种方式:

python format 怎么用 python,format_字符串_03

至于哪种方式好,对于我来说,用了.format()之后就再也不想用%了!!!

python format 怎么用 python,format_字符串_04

一 、基本用法

python format 怎么用 python,format_八进制_05

二 、关键词定位

python format 怎么用 python,format_十六进制_06

三 、可变参数

既然format()是一个方法,那是不是也接受*args和**kwargs形式的传参呢,答案是肯定的。

python format 怎么用 python,format_八进制_07

四 、固定宽度

format()可以指定输出宽度为多少,当字符串长度少于设定值的时候,默认用空格填充:

python format 怎么用 python,format_十六进制_08

当然除了空格,我们也可以选择其他字符来填充,譬如我想打印一条分割线,便可以选择通过-来填充:

python format 怎么用 python,format_字符串_09

五、对齐方式

format()支持左对齐,右对齐,居中,分别对应<,>,^,具体怎么使用我们看实例:

python format 怎么用 python,format_八进制_10

python format 怎么用 python,format_八进制_11

六、数字格式化

常用的示例如下:

取小数点后两位
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给咱们提供了方法:

python format 怎么用 python,format_字符串_12

最后的最后、花式玩法

其实结合以上这些特性,我们可以来点好玩点,譬如说自己写一个进度条:

import time
length = 1000
for i in range(1, length + 1):
percent = i / length
bar = '▉' * int(i // (length / 50))
time.sleep(0.01)
print(' 进度条:|{:<50}|{:>7.1%}'.format(bar, percent), end='')
print(' ')

效果如下:

python format 怎么用 python,format_十六进制_13

转义%%

如果我们字符串中想要显示单独的%就需要用来个%%来转义,不然程序会认为那是一个占位

num = input('>>>')
s= '目前学习进度:%s%%'%num
print(s)
>>>10

目前学习进度:10%