Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。其优点如下:
1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型
2.单个参数可以多次输出,参数顺序可以不相同
3.填充方式十分灵活,对齐方式十分强大
format的简单例子
1. print("{0}{1}".format("Hello"," World!")) #输出:Hello World!
2. print("{0:+<20}".format("Python"))#输出:Python++++++++++++++
3. print("{0:+>20}".format("Python"))#输出:++++++++++++++Python
4. print("{0:+^20}".format("Python"))#输出:+++++++Python+++++++
格式化控制信息
format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。槽样式如下:
{<参数序号>: <格式控制标记>}
其中,<格式控制标记>用来控制参数显示时的格式,其中包括:<填充><对齐><宽度>,<.精度><类型>,这些字段都是可选的,可以组合使用,介绍如下。
foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ,2…
也可以不输入数字,这样也会按顺序来填充。
例如:
1.print("{0:}{1:}".format("pyt","hon"))#输出:python
2.print("{1:}{0:}".format("pyt","hon"))#输出:honpyt
3.print("{}{}".format("pyt","hon"))#输出:python
<宽度>
宽度:指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格补充。
<填充>
表示在<宽度>内除参数外要用什么字符来填充,默认以空格填充。
<对齐>
表示参数在<宽度>内输出时的对齐方式,对齐方式有:^, <, > 分别是居中、左对齐、右对齐。
例:
1. print("{0:+<20}".format("Python"))#(左对齐)输出:Python++++++++++++++
2. print("{0:+>20}".format("Python"))#(右对齐)输出:++++++++++++++Python
3. print("{0:+^20}".format("Python"))#(居中)输出:+++++++Python+++++++
4. #以上三行代码采用的“+”填充(方便大家理解),也可以采用其他的字符
5. #如:
6. print("{0:-^20}".format("Python"))#(居中)输出:-------Python-------
逗号
用于显示数字的千位分隔符适用于整数和浮点数。
例:
1.print("{0:10,}".format(1234567))#输出: 1,234,567
<精度>
对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。
1.#1浮点数:
2.print("{0:.2f}".format(1234.5678))#输出:1234.57
3.#f前面的数字表示保留小数点后面几位小数
4.#2字符串
5.print("{0:.4}".format("PYTHON"))#输出:PYTH
<类型>
表示输出整数和浮点数类型的格式规则。对于整数类型,输出格式包括6 种:
- b: 输出整数的二进制方式
- c: 输出整数对应的 Unicode 字符
- d: 输出整数的十进制方式
- o: 输出整数的八进制方式
- x: 输出整数的小写十六进制方式
- X: 输出整数的大写十六进制方式
例:
1.print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(250))
2.#输出:11111010,ú,250,372,fa,FA
对于浮点数类型,输出格式包括4 种:
- e: 输出浮点数对应的小写字母 e 的指数形式
- E: 输出浮点数对应的大写字母 E 的指数形式
- f: 输出浮点数的标准浮点形式
- %: 输出浮点数的百分形式
例:
print("{0:e},{0:E},{0:f},{0:%}".format(0.123))
#输出:1.230000e-01,1.230000E-01,0.123000,12.300000%