Python学海无涯路【第07回】:字符串格式化

本文介绍Python中两种字符串格式化的方法:百分号方式和format方式。包括单参数、多参数、字典、列表、浮点数等多种应用场景,并展示了不同类型的参数如何进行格式化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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位)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值