我有一个号码000000000000001011,我想对此进行迭代。我使用str(num)对其进行迭代,但是它返回“ 11”作为输出字符串。为什么会这样?
答案 0 :(得分:0)
这里有两件事在玩。
首先,当输入数字时,将使用指定的数字系统将其从字符串转换为整数格式(或者无论如何,这都是我的理解):
number = int( user_input_str, 2 ) # user_input_str given in binary
但是一旦将其存储在内部,无关的数字(出于所有意图和目的)现在就消失了。
要遍历数字,您需要将其转换回二进制字符串:
number_str = '{0:b}'.format( number ).zfill( 18 )
或没有前导零:
number_str = '{0:b}'.format( number )
然后可以轻松地对其进行迭代:
for digit in number_str:
# do whatever with each digit
所有操作失败,仅遍历用户输入,而无需进行中间转换。