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)