一 基本用法
1.按照槽{ }的顺序依次匹配括号中的值
s = "{} is a {}".format('张明', 'Boy')
print(s)
# 张明 is a Boy
2. 通过索引的方式去匹配参数
s = "{0} is a {1}".format('张明', 'Boy')
print(s) # 张明 is a Boy
注:索引号从零开始,字符串中索引的顺序可以打乱,并不影响匹配。
3.通过参数名来匹配参数
s = "{name} is a {sex}".format(name='张明', sex='Boy')
print(s) # 张明 is a Boy
注:如果参数已经确定,可以直接利用f+ { }进行格式化引用
name = 'Tom'
sex = 'Girl'
# 以f开头表示在字符串中支持大括号内的python表达式
s = f"{name} is a {sex}"
print(s) # Tom is a Boy
4.可以通过索引,参数名来混搭进行混搭匹配
s = "My name is {}, i am {age} year old, She name is {}".format('张明', 'Lily', age=10)
print(s) # My name is 张明, i am 10 year old, She name is Lily
注:在format中, age=10 必须在最后参数的位置;但索引号和默认格式同时使用会报错。
二 格式化输出
#槽的内部格式:
{ <参数序号> : <格式控制标记> }
格式控制标记用来控制参数显示时的格式:
格式控制标记包括<填充>、<对齐>、<宽度>、<,>、<.精度>、<类型>6个字段,都是可选的,可以组合使用
1. <填充>、<对齐>、<宽度>
<填充>指宽度内除了参数外的字符采用什么方式表示,默认采用空格。
<对齐>指参数在宽度内输出时的对齐方式,分别使用< 、> 、^ 表示左对齐、右对齐、居中,默认左对齐。
<宽度>指当前槽的设定输出字符的宽度,
如果该槽对应的format()参数长度比<宽度>设定值大,使用参数实际长度。
如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。
str = "HELLO"
print('{0:*30}end'.format(str))
# HELLO*************************end
#对齐
str = "HELLO"
print('{:>30}'.format(str)) #右对齐
HELLO
#填充
str = "HELLO"
print('{0:*^30}'.format(str)) #居中且使用*填充
************HELLO*************
#参数长度比<宽度>设定值大,使用参数实际长度
str = "HELLO"
print('{:3}'.format(str)) 宽度设定为3,但参数HELLO实际长度大于3,使用参数实际长度
HELLO
2.<精度>
精度表示两个含义,由小数点(.)开头:
对于浮点数,精度表示小数部分输出的有效位数
对于字符串,精度表示输出的最大长度
print('{:.2f}'.format(123.4567))
123.46
print('{:X^30.2f}'.format(123.4567))
XXXXXXXXXXXX123.46XXXXXXXXXXXX
str = "HELLO"
print('{:.3}'.format(str))
HEL
ps :参考此大佬博客http://t.csdn.cn/FybLj