一、字符串格式化,format()方法
a = "名字:{0},年龄:{1}",字符串中{0}表示占位符,相当于变量,格式化时会替换为真实的参数值;0表示参数的索引下标所以讲究顺序
a = "名字:{0},年龄:{1}"
b = a.format("Lily",8)
print(b)
c = a.format("Tome",6)
print(c)
a = "名字:{name},年龄:{age}",字符串中{name}表示站位符,相当于变量,格式化时会根据变量名name替换为真实的参数值;
因为根据变量名替换所以不讲究顺序
a = "名字:{name},年龄:{age}"
b = a.format(name="Jerry",age=10)
print(b)
format(*args,**kwargs)
format()格式化也可以传入字典参数
举例:
str1='{a}-{b}-{c}'
datas={"a":123,"b":456,"c":789}
print(str1.format(**datats))
结果:
123-456-789
注:.format()只能格式化一层{},如果是多层{{},{}}则无法使用.format()
二、填充与对齐
填充常跟对齐一起使用:
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:冒号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
a = "名字:{0:*^8},年龄:{1}"
b = a.format("Lily",8)
print(b) #结果:名字:**Lily**,年龄:8
c = "名字:{0:^8},年龄:{1}"
d = c.format("Lily",8)
print(d) #结果:名字: Lily ,年龄:8
e = "名字:{0:*>8},年龄:{1}"
f = e.format("Lily",8)
print(f) #结果:名字:****Lily,年龄:8
g = "名字:{0:*<8},年龄:{1}"
h = g.format("Lily",8)
print(h) #结果:名字:Lily****,年龄:8
三、数字格式化
a = "我是{0},我的存款有{1:.2f}" #{1:.2f},f表示浮点数,.2表示2位小数位
c = a.format("Lily",520.1314)
print(c) #结果:我是Lily,我的存款有520.13
数字 格式 输出 描述
3.1415926 {:.2f} 3.14 保留小数点后两位
3.1415926 {:+.2f} 3.14 带符号保留小数点后两位
2.71828 {:.0f} 3 不带小数
5 {:0>2d} 05 数字补零 (冒号后面0补充,右对齐宽度为2)
5 {:x<4d} 5xxx 数字补 x (冒号后面x补充,左对齐宽度为4)
10 {:x<4d} 10xx 数字补 x (冒号后面x补充,左对齐宽度为4)
1000000 {:,} 1,000,000 以逗号分隔的数字格式
0.25 {:.2%} 25.00% 百分比格式(.2小数位为2位)
1000000000 {:.2e} 1.00E+09 指数记法(.2小数位为2位)
13 {:10d}&{:>10d} 13 右对齐(默认, 宽度为 10)
13 {:<10d} 13 左对齐宽度为 10)
13 {:^10d} 13 中间对齐(宽度为 10)
print("My name is %s ,age is %d" % ('Vince', 18))
#结果:My name is Vince ,age is 18
"My name is %s ,age is %d"为我们的模板。%s为第一个格式符表示一个字符串。%d为第二个格式符表示一个整数。
('Vince', 18)的两个元素'Vince'和99为替换%s和%d的真实值。
print("My name is %(name)s ,age is %(age)d" %{"name":"Vince","age":18})
#结果:My name is Vince ,age is 18
利用字典传递真实值:对两个格式符进行了命名。命名使用()括起来。每个命名对应字典的一个key
格式符总结:
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"