format详解
填充与对齐
冒号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充,^、<、>分别是居中、左对齐、右对齐,后面带宽度。
>>> print("{:5d}".format(10)) 10 >>> print("{:05d}".format(10)) 00010 >>> print("{:^05}".format("##")) 0##00 >>> print("{:<05}".format("##")) ##000 >>> print("{:>05}".format("##")) 000##
精度与类型
整数:b、d、o、x分别是二进制、十进制、八进制、十六进制;
浮点型:f
>>> print("{:b}".format(10)) 1010 >>> print("{:d}".format(10)) 10 >>> print("{:o}".format(10)) 12 >>> print("{:x}".format(10)) a >>> print("{:f}".format(10)) 10.000000
位置
>>> print("{1:.3f} , {0:02d}".format(5, 10.11)) 10.110 , 05 >>> print("{name:6} , {age:02d}".format(age=5, name="marvin")) marvin , 05
下面是一道蓝桥杯练习系统的题目,利用format可以很方便地解决:
问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是: 00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。 输入格式 本试题没有输入。 输出格式 输出32行,按从小到大的顺序每行一个长度为5的01串。 样例输出 00000 00001 00010 00011 <以下部分省略>
for i in range(32): print("{:05b}".format(i))