我想获取一个字符串,其中包含直到给定数字的所有二进制数。 在输出中,我需要一个字符串。
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)
答案 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