Python format 用法详解
一、填充字符串
1. 位置
print("hello {0}, this is {1}.".format("world", "python")) # 根据位置下标进行填充
print("hello {}, this is {}.".format("world", "python")) # 根据顺序自动填充
print("hello {0}, this is {1}. {1} is a new language.".format("world", "python")) # 同一参数可以填充多次
输出:
hello world, this is python.
hello world, this is python.
hello world, this is python. python is a new language.
2. key
obj = "world"
name = "python"
print("hello {obj}, this is {name}.".format(obj = obj, name = name))
输出:
hello world, this is python.
3. 列表
list = ["world", "python"]
print("hello {names[0]}, this is {names[1]}.".format(names = list))
输出:
hello world, this is python.
4. 字典
dict = {"obj":"world", "name":"python"}
print("hello {names[obj]}, this is {names[name]}.".format(names = dict))
输出:
hello world, this is python.
注意:
访问字典的 key,不用引号。
5. 类属性
class Names():
obj = "world"
name = "python"
print("hello {names.obj}, this is {names.name}.".format(names = Names))
输出:
hello world, this is python.
6. 魔法参数
args = [",", "inx"]
kwargs = {"obj": "world", "name": "python"}
print("hello {obj}{} this is {name}.".format(*args, **kwargs))
输出:
hello world, this is python.
注意:
这里的 format(*args, **kwargs)
等价于 format(",", "inx", obj = "world", name = "python")
。
二、数字格式化
数字 | 格式 | 输出 | 描述 |
---|---|---|---|
3.1415926 | 3.14 | 保留小数点后两位 | |
3.1415926 | +3.14 | 带符号保留小数点后两位 | |
-1 | -1.00 | 带符号保留小数点后两位 | |
2.71828 | 3 | 不带小数 | |
5 | 05 | 数字补零 (填充左边, 宽度为2) | |
5 | 5xxx | 数字补x (填充右边, 宽度为4) | |
10 | 10xx | 数字补x (填充右边, 宽度为4) | |
1000000 | 1,000,000 | 以逗号分隔的数字格式 | |
0.25 | 25.00% | 百分比格式 | |
1000000000 | 1.00e+09 | 指数记法 | |
13 | 13 | 右对齐 (默认, 宽度为10) | |
13 | 13 | 左对齐 (宽度为10) | |
13 | 13 | 中间对齐 (宽度为10) | |
11 | '{:b}'.format(11) | 1011 | 二进制 |
11 | '{:d}'.format(11) | 11 | 十进制 |
11 | '{😮}'.format(11) | 13 | 八进制 |
11 | '{:x}'.format(11) | b | 十六进制 |
11 | '{:#x}'.format(11) | 0xb | 十六进制 |
11 | '{:#X}'.format(11) | 0xB | 十六进制 |
三、其他用法
1. 转义
print("{{hello}} {{{0}}}".format("world"))
输出:
{hello} {world}
2. format 作为函数变量
name = "python"
hello = "hello, welcome to {} world!".format
print(hello(name))
输出:
hello, welcome to python world!
3. 格式化 datatime
from datetime import datetime
now = datetime.now()
print("{:%Y-%m-%d %X}".format(now))
输出:
2020-12-15 19:46:24
4. {}内嵌{}
print("hello {0:>{1}} ".format("world", 10))
输出:
hello world
四、参考
最怕一生碌碌无为,还说平凡难能可贵。