参考链接:
python3 print.format用法
Python format 格式化函数
带format格式的输出
输出顺序
print('{},{}'.format('lin', 25))
print('{0},{1},{2}'.format('lin', 'male', 25))
print('{name},{sex},{age}'.format(age=25, sex='male', name='lin'))
输出为:
lin,25
lin,male,25
lin,male,25
上面的代码中,第一行就是常规的按顺序输出。
第二行加了性别和序号,序号可以控制后面输出的顺序,改变序号的位置,后面输出的顺序也会相应改变。例如:
print('{1},{0},{2}'.format('lin', 'male', 25))
输出就是:
male,lin,25
第三行在中括号{ }中加了关键字,随后在format格式中给出了各个关键字的值,这样输出就可以不受后面顺序的影响,只要给出相应的关键字的值即可。
填充与对齐
常用的填充符号:^(居中),<(左对齐),>(右对齐)
一般在填充符号后面跟一个数字表示填充之后的字符串长度。
在中括号{ }中的冒号后指定填充的字符(只能是一个字符),不指定的话默认是用空格填充
print('{:>6}'.format('lin'))
print('{:s>6}'.format('lin'))
print('{:s<6}'.format('lin'))
print('{:s^6}'.format('lin'))
print('{:s^2}'.format('lin'))
打印效果:
lin
ssslin
linsss
slinss
lin
数字指定填充完的字符串长度,大于原来字符串长度时填充有效,如果小于原来字符串长度,那么只显示原来字符串,见上面最后一个打印格式。
数值打印
进制类型:b、d、o、x分别表示二进制、十进制、八进制、十六进制。
浮点数类型:用f表示浮点数,小数点后面一个数字,表示小数点后面保留的小数位数。
print('{:b}'.format(25))
print('{:d}'.format(25))
print('{:o}'.format(25))
print('{:x}'.format(25))
print('{:.4f}'.format(3.14159))
打印结果:
11001
25
31
19
3.1416
逗号分隔数值较大的数字:
print('{:,}'.format(123456789))
123,456,789
最后,假如想用format格式输出一句话,例如:
My name is lin*(8位,*填充), and I am 25 years old.
I am 1.73 meter tall.
其中名字和岁数由格式控制。那么可以用如下方式:
print('My name is {:*<8}, and I am {} years old.'.format('lin', '25'))
print('I am {:.2f} meter tall.'.format(1.73))
My name is lin*****, and I am 25 years old.
I am 1.73 meter tall.
带%控制格式的输出
这种方式比较简单,将原来format的位置换成%,去掉前面的小数点即可。前面需要输出的位置不再是中括号控制,而是%加控制符,类型与前面类似。举一个简单的例子:
print('My name is %s, and I am %d years old. I am %.2f meter tall' % ('lin', 25, 1.73))
My name is lin, and I am 25 years old. I am 1.73 meter tall
%s表示字符串格式,注意数值类型(%d, %f)后面相应的位置必须是数值,不要误写成字符串了。