Python格式化的三种方法
格式化输出Python中常用的操作,3.6以后有三种方法:
- f-string方法(强烈推荐)
- str.format()方法
- %s方法
简洁万能的f-string方法
3.6以后的版本强烈推荐这种方法
- 代码清晰易读
- {}中支持代码
- 支持格式控制
- list和tuple型可以随意调整输出顺序
name_str="f-string"
name_lst=["f-string","f-string2"]
name_dic={"id":1,"name":"f-string2","height":1.75}
print(f'Hello,{name_str}')
print(f'Hello,{name_lst}')
print(f'Hello,{name_dic}')
print(f'支持代码:{name_lst[1]}') # 支持代码
print(f'整数型无格式控制:{name_dic["id"]}')# 整数型无格式控制
print(f'整数型有格式控制:{name_dic["id"]:5}') # 整数型有格式控制(宽度5)
print(f'字符串型无格式控制:{name_str}')# 字符串型无格式控制
print(f'字符串型有格式控制:{name_str:>10}') # 字符串型有格式控制(右对齐,长度10)
print(f'浮点型无格式控制:{name_dic["height"]}')# 浮点型无格式控制
print(f'浮点型有格式控制:{name_dic["height"]:.3f}') # 浮点型有格式(精度为3位)
print(f'list可以调整输出顺序{name_lst[1]} {name_lst[0]}')
Hello,f-string
Hello,['f-string', 'f-string2']
Hello,{'id': 1, 'name': 'f-string2', 'height': 1.75}
支持代码:f-string2
整数型无格式控制:1
整数型有格式控制: 1
字符串型无格式控制:f-string
字符串型有格式控制: f-string
浮点型无格式控制:1.75
浮点型有格式控制:1.750
list可以调整输出顺序f-string2 f-string
str.format()方法
- 支持格式控制
- list和tuple型无法调整输出顺序
- 可读性稍差
name_str="f-string"
name_lst=["f-string","f-string2"]
name_dic={"id":1,"name":"f-string2","height":1.75}
print('Hello {}'.format(name_str) )
print('列表型和tuple型无法调整输出顺序{} {}'.format(*name_lst))
print('Hello {id:5}'.format(**name_dic) )#支持格式控制(宽度5),其他的不再列举
Hello f-string
列表型和tuple型无法调整输出顺序f-string f-string2
Hello 1
%s型
- 支持格式控制
- 无法调整list和tuple型输出顺序
- 可读性差
name_str="f-string"
name_lst=["f-string","f-string2"]
name_dic={"id":1,"name":"f-string2","height":1.75}
print('可格式控制:%10s'% name_str)
print('列表型和tuple型无法调整输出顺序%s %s' %(tuple(name_lst)))
print("dict型输出复杂%(name)s" %(name_dic))
可格式控制: f-string
列表型和tuple型无法调整输出顺序f-string f-string2
dict型输出复杂f-string2
综上所述,3.6以上首推f-string格式,Python3低于3.6推荐str.format,Python2只能选择%s