在python3.6之后引入了 f-strings在以后格式化输出的时候可以使用 如下一些方法达到使用format 或是 % 实现的功能:
和format用法比:
- 通过位置
data = ['data1', 'data2']
# format
print("data1: {0}, data2: {1}".format(*data))
# f-strings
print(f"data1: {data[0]}, data2: {data[1]}")
- 通过关键字
personal = {"name": "Json", "age": 12, "sex": "M"}
# format
print("Name: {name}, age: {age}, sex: {sex}".format(**personal))
# f-strings
print(f"Name: {personal['name']}, age: {personal['age']}, sex: {personal['sex']}")
- 数据精度和类型
num = 23234.76686566
# 保留两位小数
print(f"{num:.2f}")
# 保留两位小数,十个占位符,不足的使用0补充
prinf(f"{num:010.2f}")
- 填充和对齐经常是一起使用的
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充(一般不指定)。
personal = {"name": "Json", "age": 12, "sex": "M"}
# format
print("Name: {name:>5}, age: {age:>5}, sex: {sex:>5}".format(**personal))
# f-strings
print(f"Name: {personal['name']:^10}, age: {personal['age']:^10}, sex: {personal['sex']:^10}")
- 使用 !r可以给字符串添加引号
a = "abc"
b = "hjk"
# format
c = "{!r} -- {!r}".format(a, b)
===> "'abc' -- 'hjk'"
# f-string
c = f"{a!r} -- {b!r}"
===> "'abc' -- 'hjk'"
网友评论