输出/查找前n个天然二进制代码:
import math
def binary_print(n):
m = int(math.ceil(math.log(n, 2)))
for i in range(n):
b = str(bin(i)[2:])
print((m - len(b)) * '0' + b)
Run Code Online (Sandbox Code Playgroud)
我的问题是:
你知道在Python中用其他任何方法吗?也许更快?或更短(更少的代码)?
那么这个更短,不确定更快:
def binary_print(n):
print '\n'.join('{:0{}b}'.format(x, (n-1).bit_length()) for x in range(n))
Run Code Online (Sandbox Code Playgroud)
用法示例:
>>> binary_print(6)
000
001
010
011
100
101
Run Code Online (Sandbox Code Playgroud)