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)
结果: