Python 格式化输出
我们在程序调试或者写入文件的时候,为了格式整齐,需要用到格式化的输出,这里使用实例对Python的格式化输出做下总结。
print(f"")
python-3.5以上版本可以使用print(f),省去了使用%的占位,且可以直接输出,不需要考虑类型。
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Person(): def __init__(self): self.name = "heng" self.age = 30 name = "heng" age = 30 weight = {"kg":"80"} hobby = ["sporting","drinking"]
Person = Person()
print(f"{name}的年龄 {age}、体重 {weight}、爱好 {hobby}",end="***\n") print(f"class print{Person}, person_name: {Person.name}",end="***\n")
|
output:
1 2
| heng的年龄 30、体重 {'kg': '80'}、爱好 ['sporting', 'drinking']*** class print<__main__.Person object at 0x0000000004F60DA0>, person_name: heng***
|
print的形式同样可以写入文件中:
1 2 3
| with open("out.txt", "w", encoding="utf-8") as fout: fout.write(f"{name}的年龄 {age}、体重 {weight}、爱好 {hobby}")
|
通过{}和:来代替传统%方式
设置位置
1 2 3 4 5
| "{}**{}".format("hello", "world")
"{0}**{1}".format("hello", "world") "{1}**{0}***{1}".format("hello", "world")
|
output:
1 2 3
| hello**world hello**world world**hello***world
|
设置name
1 2 3 4 5 6 7 8 9
| print("姓名 {name}, 年龄 {age}".format(name="heng", age=30))
test = {"name": "heng", "age": 30} print("姓名 {name}, 年龄 {age}".format(**test))
my_list = ["heng", 30, 80] print("姓名 {0[0]}, 年龄{0[1]},体重{0[2]}".format(my_list))
|
output:
1 2 3
| 姓名 heng, 年龄 30 姓名 heng, 年龄 30 姓名 heng, 年龄30,体重80
|
对齐
^,居中对齐
<,左对齐
>,右对齐
后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| print("{:.2f}".format(3.1415926)) print('{:>10}'.format('heng')) print('{:<10}'.format('heng')) print('{:^10}'.format('heng'))
print('name:{0:*<10}, age:{1:*<10}'.format('heng11111111111',30)) print('name:{name:*<10}, age:{age:*<10}'.format(name='heng',age=30)) print('{:>10}'.format('heng')) print('{:<10}'.format('heng')) print('{:^10}'.format('heng'))
print('name:{0:*<10}, age:{1:*<10}'.format('heng11111111111',30)) print('name:{name:*<10}, age:{age:*<10}'.format(name='heng',age=30))
|
output:
1 2 3 4 5 6
| 3.14 heng heng heng name:heng11111111111, age:30******** name:heng******, age:30********
|
参考