python字符串格式化的三种方式

一、%格式化字符串

1、字符串格式代码

2、常用转义字符

3、实例

# %s表示字符串,%d表示整数类型,%f表示浮点类型的数字
info='我叫%s,你叫%s,他叫%s,今年是%d年'%('刘德华','张学友','郭富城',2020)
print(info)  #我叫刘德华,你叫张学友,他叫郭富城,今年是2020年


#补位数,当位数不足时,可以通过规定数字的长度进行补空格操作;比如设置数字为n,当输入的位数只有m位(m<n)时,则补n-m位空格;如果m>n,则正常显示所有字符
#对于数字而言,还可以根据需要在左侧补0
info='我叫%5s,你叫%5s,他叫%05s,今年是%05d年'%('刘德华特洛夫斯基','张学友','郭富城',20)
print(info)  #我叫刘德华特洛夫斯基,你叫  张学友,他叫  郭富城,今年是00020年

# 上述方法默认所有的字符都是右对齐,如果需要左对齐,那么加上一个负号.
info='我叫%-5s,你叫%-5s,他叫%-5s,今年是%-05d年'%('刘德华','张学友','郭富城',20)
print(info)  #我叫刘德华  ,你叫张学友  ,他叫郭富城  ,今年是20   年(!!!无法进行补0操作)

小数保留位数:

>>> print('%f' % 1.11)  # 默认保留6位小数
1.110000
>>> print('%.1f' % 1.11)  # 取1位小数
1.1
>>> print('%e' % 1.11)  # 默认6位小数,用科学计数法
1.110000e+00
>>> print('%.3e' % 1.11)  # 取3位小数,用科学计数法
1.110e+00
>>> print('%g' % 1111.1111)  # 默认6位有效数字
1111.11
>>> print('%.7g' % 1111.1111)  # 取7位有效数字
1111.111
>>> print('%.2g' % 1111.1111)  # 取2位有效数字,自动转换为科学计数法
1.1e+03 

二、str.format()格式化字符串

常规用法

name1='world'
name2='test'
print("hello,{},{}".format(name1,name2))# hello,world,test

通过位置访问:

print("hello,{2}, {1}, {0}".format('a', 'b', 'c'))  #hello,c, b, a

通过关键字访问:

print('Hello {name1},{name2},{name3}'.format(name1='testerzhang',name3="testerli",name2="testerwu") )
#Hello testerzhang,testerwu,testerli

dict={"name1":"testerzhang","name3":"testerli","name2":"testerwu"}
print("Hello {name1},{name2},{name3}".format(**dict)) #Hello testerzhang,testerwu,testerli

三、f-string格式化字符串

Python3.6 版本开始出现了此新的格式化字符串,性能又优于前面两种方式

name1="world"
name2="test"
print(f"hello,{name1},{name2}") #hello,world,test
print(f"hello,{name1.upper()},{name2.upper()}")  #hello,WORLD,TEST
原文地址:https://www.cnblogs.com/crystal1126/p/14831974.html