我想用完整的8位格式打印二进制数0x00到0xFF。
bin()
Python函数不会返回完整的8位,所以我需要使用format
函数来格式化二进制字符串。
下面这段代码给了我一个ValueError
,但我将二进制字符串传递给格式函数,并且我使用08b
,所以为什么会出错?
a = bin(10);
a_bin = "{0:08b}".format(a);
答案 0 :(得分:2)
bin
将返回一个字符串,您不能将字符串格式化,就像它是一个数字一样。这就是为什么异常消息说它是字符串的未知格式:
>>> "{0:08b}".format(bin(10))
ValueError: Unknown format code 'b' for object of type 'str'
您必须使用整数作为格式的输入:
>>> "{0:08b}".format(10)
'00001010'
答案 1 :(得分:1)
使用数字,而不是字符串:
>>> "{0:08b}".format(10)
'00001010'
打印全部:
>>> for i in range(0, 256):
... print("{0:08b}".format(i))
...
00000000
00000001
00000010
00000011
00000100
...
11111011
11111100
11111101
11111110
11111111