本文主要讲解字符串格式化的两种方法,一种是format的方法,一种是f-string的方法。
字符串格式化是指把数据(字符串、数字格式)填写到预先定义的格式字符串里面,并把这条消息保存成字符串的过程。
format是字符串格式化的一种方法,之前用的是%这种方式。
f-string是插值格式字符串(interpolated format string)的简称,是python3.6添加的一种方法。
format
以”格式字符串.format()“的形式将字符串格式化。
通过位置来填充字符串
格式字符串中待调整的数据用{}代替,按照从左到右的顺序将要填充的数据放在format里面。
panda_info="大家好,我是大熊猫{},我今年7月份就{}岁啦".format("花花",3)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
格式字符串中待调整的数据用{数字}代替,数字的值表示取format里面第几个数据(从0开始),按照从左到右的顺序将要填充的数据放在format里面。
panda_info="大家好,我是大熊猫{0},我今年7月份就{1}岁啦".format("花花",3)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
通过设置关键字填充字符串
格式字符串中待调整的数据用{关键字}代替,按照”关键字=数据值”的格式将要填充的数据放在format里面,没有顺序到要求,其中数据的值可以直接为要填充的数据,也可以是定义的的变量。
name ="花花"
age=3
panda_info="大家好,我是大熊猫{name},我今年7月份就{age}岁啦".format(name=name,age=age)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
panda_info="大家好,我是大熊猫{name},我今年7月份就{age}岁啦".format(name="花花",age=3)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
通过list填充字符串
这种方式有两种方法:
第一种:格式字符串中待调整的数据用{列表名称[列表索引]}代替;按照”列表名称=列表“的格式将要填充的数据放在format里面,列表可以为定义好的列表变量也可以为列表数据。
panda=["花花",3]
panda_info="大家好,我是大熊猫{panda[0]},我今年7月份就{panda[1]}岁啦".format(panda=panda)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
panda_info="大家好,我是大熊猫{panda[0]},我今年7月份就{panda[1]}岁啦".format(panda=["花花",3])
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
第二种:格式字符串中待调整的数据用{数字}代替,数字的值表示取列表第几个数据(从0开始);将列表放在format里面,并在列表的前面加上*,列表可以为定义好的列表变量也可以为列表数据(推荐)
panda=["花花",3]
panda_info="大家好,我是大熊猫{0},我今年7月份就{1}岁啦".format(*panda)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
panda_info="大家好,我是大熊猫{0},我今年7月份就{1}岁啦".format(*["花花",3])
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
通过字典填充字符串
这种方式有两种方法:
第一种:格式字符串中待调整的数据用{字典名称[key值]}代替,key值不加引号;按照”字典名称=字典“的格式将要填充的数据放在format里面,字典可以为定义好的字典变量也可以为字典数据。
panda={"name":"花花","age":3}
# 这个地方要注意哈,没有引号
panda_info="大家好,我是大熊猫{panda[name]},我今年7月份就{panda[age]}岁啦".format(panda=panda)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
panda_info="大家好,我是大熊猫{panda[name]},我今年7月份就{panda[age]}岁啦".format(panda={"name":"花花","age":3})
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
第二种:格式字符串中待调整的数据用{字典的key值}代替。将字典放在format里面,并在字典的前面加上**。(推荐)
panda={"name":"花花","age":3}
panda_info="大家好,我是大熊猫{name},我今年7月份就{age}岁啦".format(**panda)
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
panda_info="大家好,我是大熊猫{name},我今年7月份就{age}岁啦".format(**{"name":"花花","age":3})
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
f-string
f-string方法是以f"格式字符串"的形式将字符串格式化,即格式字符串的前面加字母f作为前缀,格式字符串的{}里面可以使用定义好的变量名称,减少代码的冗余,另外也可以放表达式。
{}里面存放变量
格式字符串前面加f,格式字符串中待调整的数据用{变量名称}代替。
name ="花花"
age=3
panda_info=f"大家好,我是大熊猫{name},我今年7月份就{age}岁啦"
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦
{}里面存放表达式
格式字符串前面加f,格式字符串中待调整的数据用{表达式}代替。如下:假设值取名字的前一位,可以直接在{}里面写表达式
name ="花花"
age=3
panda_info=f"大家好,我是大熊猫{name[:1]},我今年7月份就{age}岁啦"
print(panda_info)
#大家好,我是大熊猫花花,我今年7月份就3岁啦