格式化符号
常见符号
符号 | 释义 |
---|---|
%c |
格式化字符 |
%s |
格式化字符串 |
%d |
格式化整数 |
%o |
格式化八进制数 |
%x |
格式化十六进制数 |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%g |
根据值的大小决定使用 %f 或 %e |
举例
%c
>>> print("%c" % 97)
a
>>>
%o
>>> print("%d 的八进制为 %o" % (100, 100))
100 的八进制为 144
>>>
%x / %X
>>> print("%d 的十六进制为 %x" % (200, 200))
200 的十六进制为 c8
>>> print("%d 的十六进制为 %X" % (200, 200))
200 的十六进制为 C8
>>>
%f
# 浮点数默认精确到小数点后 6 位
>>> print("%f" % 3.14)
3.140000
>>> print("%f" % 3.14159265)
3.141593
>>>
%e / %E
>>> print("用科学计数法表示一个天文单位:%ekm" % 149597871)
用科学计数法表示一个天文单位:1.495979e+08km
>>> print("用科学计数法表示一个天文单位:%Ekm" % 149597871)
用科学计数法表示一个天文单位:1.495979E+08km
>>>
%g
>>> print("%g" % 1.496)
1.496
>>> print("%g" % 149597871)
1.49598e+08
>>>
辅助指令
常用指令
符号 | 释义 |
---|---|
n1.n2 |
n1 表示显示的最小总宽度,小数点也算;若超出,则原样输出 n2 表示小数点后的位数 |
- |
靠左输出 |
+ |
靠右输出(默认值) |
# |
八进制数前显示 0o ,十六进制数前显示 0x |
0 |
用于填充空格 |
举例
n1.n2
print("1234567890") # 参考
print("%6.3f" % 3.1)
print("%7.3f" % 3.14159265)
print("%7.3e" % 3.14159265)
print("%10.3e" % 3.14159265)
>>>
1234567890
3.100
3.142
3.142e+00
3.142e+02
.n2 与 n1.
print("1234567890")
print("%.3f" % 3.1)
print("%.3f" % 3.14159265)
print("%6.f" % 3.4)
print("%6.f" % 3.5) # n2 可省,但不推荐
>>>
1234567890
3.100
3.142
3
4
-
print("1234567890")
print("%6.2f" % 3.1)
print("%-6.2fA" % 3.1) # 靠左输出
>>>
1234567890
3.10
3.10 A
+
print("1234567890")
print("%6.2f" % 3.1)
print("%+6.2f" % 3.1) # 靠右输出,但多一个 +
>>>
1234567890
3.10
+3.10
#
print("%x" % 100) # 按十六进制输出
print("%#x" % 100) # 按十六进制输出,带符号,大小写不敏感
print("%#X" % 100)
print("%#o" % 100) # 按八进制输出,带符号,大小写敏感
>>>
64
0x64
0x64
0o144
0
print("1234567890")
print("%5d" % 3)
print("%05d" % 3) # 数字 0 是填充字符
>>>
1234567890
3
00003
更多格式
- Python3.6 之后,增加了
f-string
- Python3.8 之后,
f-string
增加了f'{expr=}'
- 官方文档:>>> 传送门
简单举例
# {[index][: [[fill] align] [sign] [width] [.precision] [type]]}
>>> num = 1234567890
>>> f"{num:,}"
'1,234,567,890'
>>> f"{num:=>+20.6e}"
'=======+1.234568e+09'
>>>