【python】字符串格式化

1、知识预览

字符串格式化是使用更便捷的方式实现字符串的拼接。

python中字符串格式化提供了三种方式: %          format(常用)            f

2、%

2.1 基本格式化操作

name="李明"
#%s是占位符,%s用于字符串占位  %d占位符专门用于整型占位
text="我叫%s,今年18岁"   %"李明"  #此时%后的"李明"会替代%s
text2="我叫%s,今年18岁"   %name  #此时%后的name会替代%s
print(text)
print(text2)

结果:

结果:

name='李明'
age=18
text="我叫%s,今年%d岁"  %("李明",18)  #“李明”替代%s,18替代%d
text2="我叫%s,今年%d岁"  %(name,age)   #name替代%s,age代替%d
print(text)
print(text2)

%(...) :是根据位置关系一一对应,当(...)括号中只有一个数据时,外面的括号可以不写

注意:%(...) (...)括号中的内容是依次对应前面字符串中的占位符

%(...)这种方式比较常用

 %{“名字”:值,...}:根据名称一一对应

message="%(name)s你什么时候过来呀,%(user)s今天不在家"   %{"name":"死鬼","user":"李杰"}
print(message)

结果:

2.2百分比

text="兄弟,这个视频我已经下载了90%,居然断网了"
print(text)

结果:

text="%s,这个视频我已经下载了90%,居然断网了"  %"兄弟"
print(text)

结果:

 解决字符串中有占位符时并且有%的情况:只需在%之后再加上%

text="%s,这个视频我已经下载了90%%,居然断网了"  %"兄弟"
print(text)

结果:

一旦字符串格式化中存在百分比(即:%)的形式,请一定要加%%以实现输出%  

 3、format(推荐)(共有两种方式)

3.1第一种方式:字符串中的{...}的内容为数字

text1="我叫{0},今年18岁".format("李明")  #{0}对应“李明”
text2="我叫{0},今年{1}岁".format("李明",18)  #{0}对应“李明”,{1}对应18
text3="我叫{0},今年{1}岁,真实姓名为{0}".format("李明",19)  #{0}对应“李明”,{1}对应19
print(text1)
print(text2)
print(text3)

结果:

text1="我叫{},今年18岁".format("李明")
text2="我叫{},今年{}岁".format("李明",18)
text3="我叫{},今年{}岁,真实姓名为{}".format("李明",19,"李明")
print(text1)
print(text2)
print(text3)

结果:

 

在上述代码中:当字符串中{}中不写数字时,此时会根据format(...)中的顺序一一对应来给值,这种方法的缺点是不能复用  

 3.2字符串中的{...}的内容为名字(这种方式可以完成复用)

text1="我叫{n1},今年18岁".format(n1="六子")
text2="我叫{n1},今年{n2}岁".format(n1="六子",n2=18)
print(text1)
print(text2)

结果:

 4、 f(python3.6 才出来)

f格式到python3.6版本才出来,使用起来更便捷

text=f"我喜欢跑步,她也喜欢{'跑步'}"
print(text)

结果:

action ='跑步'
text=f"我喜欢跑步,她也喜欢{action}"
print(text)

 结果:

action ='跑步'
age=18
text=f'张三喜欢{action},今年{age}岁了'
print(text)

 结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值