Python格式化输出的三种方法(format,f前缀,%s)

Python格式化的三种方法

格式化输出Python中常用的操作,3.6以后有三种方法:

  1. f-string方法(强烈推荐)
  2. str.format()方法
  3. %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