文章目录
Python的字符串格式化有两种方式: 百分号方式、format方式
百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存
1、百分号方式
1.1 、一个参数
#一个参数
print("我叫%s " % '锄禾')
输出:
我叫 锄禾
1.2 、两个参数
#两个参数
print("我叫%s ,今年%d 岁" % ('锄禾', 18))
输出:
我叫锄禾,今年18 岁
1.3、字典
print("我叫%(name)s,今年%(age)d岁" % {"name":"锄禾", "age": 18})
输出:
我叫锄禾,今年18岁
1.4、浮点
print("%.3f" % 1.23456789) #四舍五入,小数点后取3位
输出:
1.235
1.5、输出%
print("%.3f%%" % 1.23456789)
输出:
1.235%
1.6、固定符号分隔各字符串
print("姓名","锄禾",18,sep=":")
输出:
姓名:锄禾:18
2、Format方式
2.1、不带索引
print("我是{},今年{}岁".format("锄禾",18)) #不带索引,参数要和大括号的数量相同(参数可以比大括号多,但不能少)
输出:
我是锄禾,今年18岁
2.2、索引
print("我是{0}".format("锄禾",18)) #取索引为0的参数
print("我是{0},今年{1}岁".format("锄禾",18))
print("我是{1},今年{0}岁".format(18,"锄禾"))
输出:
我是锄禾
我是锄禾,今年18岁
我是锄禾,今年18岁
2.3、字典
print("我是{name},今年{age}".format(name="锄禾", age=18))
print("我是{name},今年{age}".format(**{"name": "锄禾", "age": 18})) #两个*,可以传字典
我是锄禾,今年18
我是锄禾,今年18
2.4、列表
print("我是{0[0]},今年{1[1]}".format(["锄禾", "chuhe"], [19, 18, 17]))
输出:
我是锄禾,今年18
2.5、占位符
print("我是{:s},今年{:d}".format("锄禾",18)) #按顺序取值
print("我是{:s},今年{:d}".format(*["锄禾", 18])) #传列表必须加一个*
print("我是{name:s},今年{age:d}".format(**{"name": "锄禾", "age": 18})) #传字典必须加两个**
print("我是{name:s},今年{age:d}".format(name="锄禾", age=18))
输出:
我是锄禾,今年18
我是锄禾,今年18
我是锄禾,今年18
我是锄禾,今年18
2.6、进制
print("二进制:{:b}\n八进制:{:o}\n十进制:{:d}\n小写十六进制:{:x}\n大写十六进制:{:X}\n百分比:{:%}\n".format(15, 15, 15, 15, 15,1.234567777))
输出:
二进制:1111
八进制:17
十进制:15
小写十六进制:f
大写十六进制:F
百分比:123.456778%
2.7、传入” 字符串类型 “的参数
s,格式化字符串类型数据
空白,未指定类型,则默认是None,同s
2.8、传入“ 整数类型 ”的参数
b,将10进制整数自动转换成2进制表示然后格式化
c,将10进制整数自动转换为其对应的unicode字符
d,十进制整数
o,将10进制整数自动转换成8进制表示然后格式化;
x,将10进制整数自动转换成16进制表示然后格式化(小写x)
X,将10进制整数自动转换成16进制表示然后格式化(大写X)
2.9、传入“ 浮点型或小数类型 ”的参数
e, 转换为科学计数法(小写e)表示,然后格式化;
E, 转换为科学计数法(大写E)表示,然后格式化;
f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
g, 自动在e和f中切换
G, 自动在E和F中切换
%,显示百分比(默认显示小数点后6位)