Python “{}.format()” 输出格式化方法
在Python中输入
help('FORMATTING')
可以得到完整的帮助文档如下
......................显示为部分内容................................
The grammar for a replacement field is as follows:
replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}"
field_name ::= arg_name ("." attribute_name | "[" element_index "]")*
arg_name ::= [identifier | digit+]
attribute_name ::= identifier
element_index ::= digit+ | index_string
index_string ::= <any source character except "]"> +
conversion ::= "r" | "s" | "a"
format_spec ::= <described in the next section>
...................................................................
程序员的修炼大概就是看一眼上面的文档就通晓下面的所有吧😆😆😆
1. 传统的写法 (C程序员很习惯的写法)
输出结果: 输出项1=1 输出项2=2 输出项3=3 输出项4=4
output_string = "输出项1=%s 输出项2=%s 输出项3=%s 输出项4=%s" % ( 1 , 2 , 3 , 4 )
print ( output_string)
2. 使用 “{}.format()” 基本语法
输出结果: 输出项1=1 输出项2=2 输出项3=3 输出项4=4
output_string = "输出项1={} 输出项2={} 输出项3={} 输出项4={}" . format ( 1 , 2 , 3 , 4 )
print ( output_string)
3. 注意 “{}.format()” 的 {index} 含义
注意这里{index},大括号中的 ‘index’ 是后面format中参数的index,
从 ‘0’ 开始到 ‘参数个数-1’
输出结果: 输出内容:4 输出内容:2 输出内容:3 输出内容:1
output_string = "输出内容:{3} 输出内容:{1} 输出内容:{2} 输出内容:{0}" . format ( 1 , 2 , 3 , 4 )
print ( output_string)
4. index 可以是反映业务含义的字符串,提高编程效率且减少错误
my_fruit = "banana"
my_ball = "football"
my_drink = "beer"
这样函数格式按照index名字来匹配,专注后面变量的处理与代换,只要index正确,输出就不会出错,方便自由。下面这三种输出的结果均为:
“我喜欢的水果是:banana,我也喜欢的球类是:football,我还喜欢的饮料是:beer”
可以看出这给编程与程序维护带来了极大方便, “{}.format()” 的真正好处
hobbies = "我喜欢的水果是:{fruit},我也喜欢的球类是:{ball},我还喜欢的饮料是:{drink}" \
. format ( ball= my_ball, fruit= my_fruit, drink= my_drink)
print ( hobbies)
hobbies = "我喜欢的水果是:{fruit},我也喜欢的球类是:{ball},我还喜欢的饮料是:{drink}" \
. format ( drink= my_drink, fruit= my_fruit, ball= my_ball)
print ( hobbies)
hobbies = "我喜欢的水果是:{fruit},我也喜欢的球类是:{ball},我还喜欢的饮料是:{drink}" \
. format ( fruit= my_fruit, drink= my_drink, ball= my_ball)
print ( hobbies)
5. format的各种活用
{index : align width} '<'居左, '>'居右, '^'居中
不指定填充字符的时候,默认填充字符为空格
output_string= "右对齐左填充[{2:>10}] 左对齐右填充[{1:<10}] 中间对齐[{0:^10}]" \
. format ( '输出项1' , '输出项2' , '输出项3' )
print ( output_string)
output_string= "右对齐左填充[{0:#>10}] 左对齐右填充[{1:*<10}] 中间对齐[{2:$^10}]" \
. format ( '输出项1' , '输出项2' , '输出项3' )
print ( output_string)
以下各种格式化方式可自行测试,灵活运用。
output_string = "【{:8}】" . format ( "love" )
print ( output_string)
output_string = "【{:8}】" . format ( "Love is wonderful" )
print ( output_string)
output_string = "【{:#>15.8}】" . format ( "Love is wonderful" )
print ( output_string)
output_string = "【{:#>30.20}】" . format ( "Love is wonderful" )
print ( output_string)
output_string = '【{}-{}】' . format ( "123" , "456" )
print ( output_string)
output_string = '【{}-{}】' . format ( 123 , 456 )
print ( output_string)
output_string = '[{:f}]' . format ( 3.1415926535758932 )
print ( output_string)
output_string = '[{:>12.8f}]' . format ( 3.1415926535758932 )
print ( output_string)
output_string = '[{:>012d}]' . format ( 12345 )
print ( output_string)
output_string = '[{: >12d}]' . format ( 12345 )
print ( output_string)
output_string = '[{: >12.2f}]' . format ( 12345.12345 )
print ( output_string)
output_string = '[{: >12d}]' . format ( 123.45 )
print ( output_string)