格式化字符串的方法
格式化字符串主要有三种方式,这里只介绍第一种方式,也是推荐的使用方式:
以花括号为占位符的字符串格式化
- 以百分号为占位符的字符串格式化
- 内置的format函数
格式声明语法
格式声明语法(Format Specification Mini-Language)是格式化字符串的核心,其语法格式为:
[[fill]align] [sign] [#] [0] [width] [grouping_option] [.precision] [type]
- 最重要的参数为
type
,表示以什么类型来解读用于替换占位符(花括号)的信息,若待填充的信息得类型与指定的type
不一致,则会报错,一般其取值为“s”、“f”、“%”、“d”,其中“s”是默认值,分别表示字符型、浮点型、百分位显示、整数型 - 其次常用的参数是
.precision
,表示字符串显示的精度,一般为.3
- 参数
sign
取值为“+”、“-”、“”,即字符串前面是否添加正负号 - 参数
0
、#
与sign参数类似,表示是否在字符串前面填充0或者空格 - 参数
fill
、align
、width
指定填充字符、对齐方式、和字符串宽度,填充的字符不可以是花括号 - 参数
grouping_option
表示千分位符,取值为“,”与“_”;当指定千分位符时,默认的type就不是“s”,默认的类型为整数型
个性化填充花括号占位符
当一个字符串中带花括号时,该花括号及其内容就是待填充字段(replacement fields),双花括号除外,双花括号表示转义花括号,任何不在花括号之内的字符将原样输出。待填充字段由三部分组成 { [field_name] [! conversion] [:format_spec] }
- 第一部分为指定填充的原始信息在哪里,一般为位置参数,也可以指定关键字参数,注意可以使用位置参数或者关键字参数的属性、索引、切片、方法返回值等,只要是能返回合法的值信息
- 第二部分以
感叹号
标志的转换,可取值为"r"、“s” 、 “a”,一般用不上 - 第三部分以
冒号
标志的格式语法声明,就是上一部分所介绍的语法格式,注意“冒号、冒号、冒号”
# 示例
'{:.3f}'.format(123.456789) # 返回'123.457'
'{:.2%}'.format(123.456789) # 返回'12345.68%'
'{:d}'.format(123) # 返回'123'
'{0[0]:s},{1[:]:s}'.format(['中国'], ['成都', '美食']) # 返回'中国,美食'