Python 3.8从零开始学
上QQ阅读APP看书,第一时间看更新

4.2.3 format字符串格式化

从Python 2.6开始,引入了另外一种字符串格式化的方式,形式为str.format()。str.format()是对百分号(%)格式化的改进。使用str.format()时,替换字段部分使用花括号表示。在交互模式下输入:

>>> 'hello,{}'.format('world')
'hello,world'
>>> print('圆周率PI的值为:{0}'.format(3.141593))
圆周率PI的值为:3.141593
>>> print('圆周率PI的值为:{0:.2f}'.format(3.141593))
圆周率PI的值为:3.14
>>> print('圆周率PI的值为:{pi}'.format(pi=3.141593))
圆周率PI的值为:3.141593
>>> print('{}年的冬奥会将在{}举行,预测中国至少赢取{}枚金牌'.format('2022','北京',5))
2022年的冬奥会将在北京举行,预测中国至少赢取5枚金牌
>>> print('{0}年的冬奥会将在{1}举行,预测中国至少赢取{2}枚金牌'.format('2022','北京',5))
2022年的冬奥会将在北京举行,预测中国至少赢取5枚金牌
>>> print('{0}年的冬奥会将在{2}举行,预测中国至少赢取{1}枚金牌'.format ('2022',5,'北京'))
2022年的冬奥会将在北京举行,预测中国至少赢取5枚金牌
>>> print('{year}年的冬奥会将在{address}举行'.format(year='2022',address='北京'))
2022年的冬奥会将在北京举行

由输出结果可以看到,str.format()的使用形式为:用一个点号连接字符串和格式化值,多于一个的格式化值需要用元组表示。字符串中,带格式化的占位符用花括号({})表示。

花括号中可以没有任何内容,没有任何内容时,若有多个占位符,则元组中元素的个数需要和占位符的个数一致。

花括号中可以使用数字,数字指的是元组中元素的索引下标,字符串中花括号中的索引下标不能超过元组中最大的索引下标,元组中的元素值可以不全部使用。如以下示例:

>>> print('{0}年的冬奥会将在{2}举行'.format('2022',5,'beijing','sh'))
2022年的冬奥会将在beijing举行

花括号中可以使用变量名,在元组中对变量名赋值。花括号中的所有变量名,在元组中必须要有对应的变量定义并被赋值。元组中定义的变量可以不出现在字符串的花括号中。如下面的示例所示:

>>> print('{year}年的冬奥会将在{address}举行'.format(year='2022',address='北京', num=5))
2022年的冬奥会将在北京举行