一、填充字符串
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
{:.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)
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
四、参考