2.2.4 格式化:format()与%

目前Python中字符串的格式化有format和%两种。其中format()是Python 2.6新增的一种格式化字符串函数,与之前的%格式化字符串相比,优势比较明显。下面重点讲解format()函数及其使用方法。

1.利用f-string格式化

在Python 3.6中加入了一个新特性:f-strings,其表示可以直接在字符串的前面加上f来格式化字符串。例如,输出“2020年12月华东地区的销售额是99.68万元。”的代码如下:

     region = '华东'
     sales = 99.68
     s = f'2020年12月{region}地区的销售额是{sales}万元。'
     print(s)

2.利用位置格式化

可以通过索引直接使用“*”将列表打散,通过索引来取值。例如,输出“2020年12月华东地区的销售额是99.68万元,利润额是3.01万元。”的代码如下:

     sales = ['华东',99.68,3.01]
     s = '2020年12月{0}地区的销售额是{1}万元,利润额是{2}万元。'.format(*sales)
     print(s)

3.利用关键字格式化

也可以通过“**”将字典打散,通过键(Key)来取值(Value)。例如,输出“2020年12月华东地区的销售额是99.68万元,利润额是3.01万元。”的代码如下:

4.利用对象属性格式化

在类中,可以自定义__str__方法来实现特定的输出。例如,输出“姓名:王海,年龄:26岁”的代码如下:

5.利用下标格式化

还可以利用下标+索引的方法进行格式化。例如,输出“2020年12月份华东地区销售额是99.68万元,利润额是3.01万元。”的代码如下:

     sales = ['华东',99.68,3.01]
     s = '2020年12月份{0[0]}地区销售额是{0[1]}万元,利润额是{0[2]}万元。'.format(sales)
     print(s)

6.利用填充与对齐格式化

填充与对齐的方法与Excel中的基本类似,通常填充与对齐一起使用。其中,>、^、<分别表示右对齐、居中、左对齐,后面的数值表示宽度,“:”后面(默认是空格)表示填充的字符,只能是一个字符。例如,对数值19进行填充与对齐,代码如下:

运行上述代码,输出如下:

其中符号后面的数值10表示总共有多少位字符,s1用空格填充左边的空格,s2用0填充左边的空格,s3用0填充左右两边的空格,s4用“*”填充右边的空格。

7.利用精度与类型格式化

精度与类型可以一起使用,格式为{ :.nf} .format(数字),其中.n表示保留n位小数,对于整数直接保留固定位数的小数位。例如,输出3.1416和26.00的代码如下:

8.利用千分位分隔符格式化

"{:,}".format()中的冒号加逗号表示可以将一个数字每三位用逗号进行分隔,例如输出“123,456,789”的代码如下:

     print("{:,}".format(123456789))

此外,目前%格式化字符串相对来说使用较少,例如输出“Hello World!”的代码如下:

     print('%s' % 'Hello World!')