字符串的格式化
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 timefor 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
