1.用法说明
- str.format() 方法通过字符串中的花括号 {} 来识别替换字段 replacement field,从而完成字符串的格式化。
- 替换字段 由字段名 field name 和转换字段 conversion field 以及格式说明符 format specifier 组成,即一般形式为 {字段名!转换字段:格式说明符}。
- 字段名分为简单字段名 simple field name 和复合字段名 compound field name。
- 而转换字段和格式说明符都是可选的。
1.1简单字段名的说明
简单字段名有三种写法:
- 省略不写 {}
- 数字 {十进制非负整数}
- 变量名 {合法的Python标识符}
1.2省略字段名
花括号内省略字段名,传递位置参数
- 替换字段形式:{}
- 注意花括号的个数可以少于位置参数的的个数,反之不然;
```python
# 省略字段名传递位置参数
print('我叫{},今年{}岁。'.format('小明', 18))
"""
我叫小明,今年18岁。
"""
# 花括号个数可以少于位置参数的个数
print('我爱吃{}和{}。'.format('香蕉', '苹果', '大鸭梨'))
"""
我爱吃香蕉和苹果。
"""
# 花括号个数多于位置参数的个数则会报错
# print('我还吃{}和{}。'.format('西红柿'))
"""
IndexError: tuple index out of range
"""
1.3 数字形式的简单字段名
可以通过数字形式的简单字段名传递位置参数
- 数组必须大于等于0的整数
- 带数字的替换字段可以重复使用。
- 数字形式的简单字段名相当于把format中的所有位置参数整体当作一个元组,通过字段名中的数字进行取值。
- 即{0}等价于tuple[0], 所以花括号内的数组不能越界。
# 通过数字形式的简单字段名传递位置参数
print('身高{0},家住{1}。'.format(1.8, '铜锣湾'))
"""
身高1.8,家住铜锣湾
"""
# 数字形式的简单字段名可以重复使用。
print('我爱{0}。\n她今年{1}。\n{0}也爱我。'.format('阿香', 17))
"""
我爱阿香。
她今年17。
阿香也爱我。
"""
# 体会把所有位置参数整体当成元组来取值
print('阿香爱吃{1}、{3}和{0}。'.format(
'榴莲', '臭豆腐', '皮蛋', '鲱鱼罐头', '螺狮粉'))
"""
阿香爱吃臭豆腐、鲱鱼罐头和榴莲。
"""
# 尝试一下越界错误
# print('{1}'.format('错误用法'))
"""
IndexError: tuple index out of range
"""