python中,字符串的格式化输出可以使用 format 函数,形如:
'{}'.format(string)
其中,string代表你要填充到 {} 中的字符串。
输出结果的格式的规定在 {} 中定义,如:
>>> string = 'python'
>>> '{:#^30}'.format(string)
'############python############'
其中:
- “:” 是引导符号,表示要对填充的字符串进行以下规则的格式化,必填,其他均为选填。
- "#"代表使用 # 对输出的结果进行填充。
- "^"代表将 string 在输出的结果中居中。
- "30"代表指定输出结果的宽度为30。
format 函数对字符串进行格式化输出的定义的结构如下:
- 填写引导符号":";
- 指定用于填充的单个字符,选填,默认为空格;
- 指定输入字符串在输出结果中对齐方式,选填,"^“为居中对齐,”<“为左对齐,”>"为右对齐,默认为左对齐;
- 指定输出结果的长度,选填,默认为输入字符串的长度;
- 指定输入字符串的最大长度,选填,以".长度"表示,如 “.10” 表示取输入字符串的前10个字符填入输出结果中,默认为输入字符串的长度。
以上内容需按顺序填写,虽然都是选填内容,但有些填写格式不支持,如只填写填充字符或只填写填充字符和输出长度而不指定对齐方式,需要自己进行尝试,发现正确的填写规则。
# 以下为不支持的规则定义示例
'{:#}'.format(string) # 只填写填充字符
'{:#30}'.format(string) # 只填写填充字符和输出长度而不指定对齐方式
对于输入多个字符串的,可以在 format 前面的字符串中输入多个 {},并在其中指定需要填入输入的第几个字符串以及相应的格式要求,然后在 format 的参数中填入所有字符串,如:
>>> '{0:#<5}, {1:$^4}, {0:@>3}, {2}'.format(1, 2, 3)
'1####, $2$$, @@1, 3'
format 函数不仅可以格式化输出字符串,还能以字符串的形式格式化输出数字,定义的结构与千米的定义类似:
- 填写引导符号 “:”;
- 指定用于填充的单个字符,选填,默认为空格;
- 指定输入字符串在输出结果中对齐方式,选填,"^“为居中对齐,”<“为左对齐,”>"为右对齐,默认为左对齐;
- 指定输出结果的长度,选填,默认为输入字符串的长度;
- 指定数字的千位分隔符,选填,无默认;
- 指定浮点数小数的精度,选填,以".精度"表示,如 “.2” 表示取小数点后2位,默认为输入数据的精度;
- 指定转换后的数值类型,选填,"b"为二进制类型,"c"为Unicode类型,"o"为八进制类型,"d"为十进制类型,"x"为十六进制类型,"e"为科学计数法表示,“f"为浮点数类型,”%"为百分数类型,默认为输入数据的类型。
以上内容需按顺序填写。
# 数值格式化输出示例
>>> '{0:b},{0:c},{0:d},{0:o},{0:x}'.format(65)
'1000001,A,65,101,41'
>>> '{0:,.3%}, {0:,.3e}, {0:,.3E}, {0:,.3f}'.format(1000)
'100,000.000%, 1.000e+03, 1.000E+03, 1,000.000'