我想知道,如何增加表示二进制数的字符串,一直到另一个二进制数?(例如,用于while循环).
例如,我从"0000"开始,在15个inc之后,我应该达到"1111"(换句话说:"0000","0001","0010",......,"1111").起初这个问题看起来很简单,但我能想到的唯一解决方案是非常荒谬的(不是pythonic,有些人可能会说).有没有人有建议?
提前致谢!
要按照字面意思要求做你应该转换为整数,添加一个,然后改回二进制.
x = to_binary(int(x, 2) + 1)
Run Code Online (Sandbox Code Playgroud)
您可能会发现bin
内置方法在实现中很有用to_binary
,但您需要稍微修改其输出以匹配您想要的结果.
但是,如果可能不进行来回转换会更好:只需存储一个整数并在需要显示它时将其转换为二进制.
在阅读您的问题仔细不过,这一切似乎你想要做的是生成的字符串'0000'
,'0001'
,'0010'
,等等.如果这是正确的,那么我建议使用itertools.product
.
例:
import itertools
for x in map(''.join, itertools.product('01', repeat=4)):
print x
0000
0001
0010
...
Run Code Online (Sandbox Code Playgroud)
看到它在线工作:ideone