字符串的格式化
format
类型 | 说明 | 示例说明 |
---|---|---|
填充字符 | 不填时默认用空格填充 | S表示用S填充 |
对齐方式 | ^表示居中对齐、<表示左对齐、>表示右对齐 | ^表示居中对齐,左右位数不足部分会用填充字符填充 |
符号标志 | +表示有符号(正数前显示+,负数前显示-),空格表示整数前加一个空格以和负数对齐 | +表示正数前显示空格 |
# | 表示是否在二进制、八进制、十六进制前显示0b、0o、0x等符号 | #表示显示进制符号,由于是十进制,所以不显示 |
宽度 | 表示输出字符串的宽度 | 16表示字符串宽度为16,不足部分会补齐 |
, | 表示使用,作为千位分隔符 | ,表示使用千位分隔符 |
精度 | 表示小数点后数字位数 | .2表示精度为2为 |
类型 | s表示字符串类型, c表示字符类型, b\o\d分别表示二八十进制, xX表示小写和大写十六进制, e\E表示小写和大写的科学记数法, f表示浮点型 |
f表示浮点型数字 |
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | {:.2f} | 3.14 | 保留小数点后两位 |
3.1415926 | {:+.2f} | +3.14 | 带符号保留小数点后两位 |
-1 | {:+.2f} | -1.00 | 带符号保留小数点后两位 |
2.71828 | {:.0f} | 3 | 不带小数 |
5 | {:0>2d} | 05 | 数字补零 (填充左边, 宽度为2) |
5 | {:x<4d} | 5xxx | 数字补x (填充右边, 宽度为4) |
10 | {:x<4d} | 10xx | 数字补x (填充右边, 宽度为4) |
1000000 | {:,} | 1,000,000 | 以逗号分隔的数字格式 |
0.25 | {:.2%} | 25.00% | 百分比格式 |
1000000000 | {:.2e} | 1.00e+09 | 指数记法 |
13 | {:>10d} | 13 | 右对齐 (默认, 宽度为10) |
13 | {:<10d} | 13 | 左对齐 (宽度为10) |
13 | {:^10d} | 13 | 中间对齐 (宽度为10) |
实用输出
In [1]: print('{:=^20}'.format('python'))
Out[1]: =======python=======
动态进度条演示
import time
for i in range(101):
a='*'*(i//5)
b='.'*(20-i//5)
print('\r{0:^3d}%[{1}->{2}]'.format(i,a,b),end='')
time.sleep(0.1)
其他
strip 用于去除字符串前后的空格:
In [1]: ' I love python\t\n '.strip()
Out[1]: 'I love python'
replace 用于字符串的替换:
In [2]: 'i love python'.replace(' ','_')
Out[2]: 'i_love_python'
find 用于返回匹配字符串的起始位置索引:
In [3]: 'i love python'.find('python')
Out[3]: 7