format常用格式化
1)str1 = "i am {}, age {}, {}".format("seven", 18, 'alex')
2)str2 = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
3)str3 = "i am {0}, age {1}, really {0}".format("seven", 18)
4)str4 = "i am {0}, age {1}, really {0}".format(*["seven", 18])
5)str5 = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
6)str6 = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
7)str7 = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
8)str8 = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
9)str9 = "i am {:s}, age {:d}".format(*["seven", 18])
10)str10 = "i am {name:s}, age {age:d}".format(name="seven", age=18)
11)str11 = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
print(str1)
print(str2)
print(str3)
print(str4)
print(str5)
print(str6)
print(str7)
print(str8)
print(str9)
print(str10)
print(str11)
我们可以使用使用大括号 {} 来转义大括号,将大括号打印出来,如下实例:
print ("{} 对应的位置是 {{0}}".format("runoob"))
输出结果为:'runoob 对应的位置是 {0}'
再看一个例子:
"{{1}}".format("不打印", "打印")
输出结果:{1}
这里使用了两个大括号实现了转义,并没有设置指定位置。
1、a = "%(name)s---%(age)d "%{'name':'xx','age':20}
print(a)
输出结果:xx---20
2、'{0}{1:.2f}'.format('Pi = ', 3.1415)
输出结果:'Pi = 3.14'
3、"{0} love {b}.{c}".format("I", b="FishC", c="com")
输出结果:'I love FishC.com'
如果将位置参数和关键字参数综合在一起使用,那么位置参数必须在关键字参数之前,否则就会出错
"{a} love {b}.{0}".format(a="I", b="FishC", "com")
SyntaxError: non-keyword arg after keyword arg
-----------------------------------------------------------
错误信息归纳:
1、"{0}{:+.2f}".format('Pi = ', 3.1415) ValueError: cannot switch from manual field specification to automatic field numbering
意思为:值错误:无法从手动字段规范切换到自动字段编号需要将{:+.2f}改为{1:+.2f}或者{0}改为{}
2、"{:.2f}".format('3.1415926') ValueError: Unknown format code 'f' for object of type 'str'
3、"{0}{1:+.2f}".format(3.1415) IndexError: tuple index out of range
参考: https://www.runoob.com/python/att-string-format.html
https://www.cnblogs.com/songdanlee/p/11105807.html