为什么二进制数的str(num)只返回特定数字作为字符串?

时间:2019-03-20 23:34:05

标签: python python-3.x string binary

我有一个号码000000000000001011,我想对此进行迭代。我使用str(num)对其进行迭代,但是它返回“ 11”作为输出字符串。为什么会这样?

1 个答案:

答案 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

所有操作失败,仅遍历用户输入,而无需进行中间转换。