初级用法
1. %格式化
python字符串格式化符号:
符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址
实例:
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))```
也可以指定参数:
name = "Eric"age= 74
"Hello, %(name)s. You are %(age)s." % (name, age)
2. str.format格式
- str.format()从Python2.6开始引入替换字段使用{}标记
** 实例
"Hello, {}. You are {}.".format(name, age) #输出结果:'Hello, Eric. You are 74.'
- 可以通过引用其索引来以任何顺序引用变量:
"Hello, {1}. You are {0}-{0}.".format(age, name)#输出结果:'Hello, Eric. You are 74-74.'
3.f-strings
- f-Strings是在Python 3.6开始加入标准库。也称为“格式化字符串文字”,F字符串是开头有一个f的字符串文字,以及包含表达式的大括号将被其值替换。
name = "Eric"age= 74f"Hello, {name}. You are {age}."
#输出结果:'Hello, Eric. You are 74.'
进阶用法
1. %格式化
-
- %()type
字符串格式控制%[(name)][flag][width][.][precision]type
name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名
flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b
width:宽度(最短长度,包含小数点,小于width时会填充)
precision:小数点后的位数,与C相同
type:输入格式类型,请看上面
info="I am %(name)s , %(age)d years old ." %{"name":"Lucy","age":8}
#输出 :I am Lucy , 8 years old
2. str.format格式化
-
- 指定参数格式化
d ='{{"userId":{userId},"teamSteps":86304529}}'.format(userId=userId)
-
- 字典参数解包
d ='{{"userId":{userId},"teamSteps":86304529}}'.format(**params)
特殊场景用法
1.json字符串中替换(字符串中包含非标记符号的{})
-
a. 使用%格式化
正常使用即可
-
b. 使用str.format或者f-strings格式化
需要对非位置符的{}转义成{{}}
2.带%字符串
- (1).使用%格式化时,需对非位置符的%转义为%%
"sas%%dsjksajd%(userId)sttiti" % params
#输出结果:sas%dsjksajd123ttiti
*(2).使用str.format或者f-strings格式化,不需要转义%