二进制数序列

时间:2019-05-11 16:37:51

标签: python

我想获取一个字符串,其中包含直到给定数字的所有二进制数。 在输出中,我需要一个字符串。

bi = str(input())
n = int(bi , 2)

line = ""
for i in range(1 , n + 1):
    line += str(bin(i))[2:]

print(line)

我的代码可以做到这一点,但是我想获得一个更漂亮,更优化的解决方案。

例如:

输入:101

输出:11011100101 (1 10 11 100 101)

1 个答案:

答案 0 :(得分:2)

这个怎么样?它使用生成器表达式进行更简洁和有效的循环,并且您可以自定义在调用join()时如何打印它:

bi   = input() # for example, type 101
line = (bin(i)[2:] for i in range(1, int(str(bi), 2) + 1))

print(' '.join(line))
=> 1 10 11 100 101