问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。
输入格式
本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011
……
试题解答
1、直观来看字串符合二进制输出,总共输出32行,故需要在0~31遍历行数。
方法一:
for i in range(32):
a='{:0>5b}'.format(i)
print(a)
考察的是格式输出:
1、^,<,>分别是居中、左对齐、右对齐,后面带宽度。本题为5。
2、:号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。本题用0填充
3、+表示在正数前显示+.负数前显示-; (空格) 表示在正数前加空格。本题均是正数无需表示。
4、b、d、o、x分别是二进制、十进制、八进制、+六进制。本题为b表示二进制输出
5、使用大号{}来转义
方法二:
5位数每一位在0~1中交替遍历循环输出:
for a in range(0, 2):
for b