将二进制数转换为字符串python

时间:2016-08-12 12:43:00

标签: python-2.7

我试图将输入011迭代为字符串,如:

val = str(011)
for _iter in range(len(val)):
    if _iter[i]=='1':
        print "yes"

但是在检查值时,它似乎给出了不同的输出。

>>> val = str(011)
>>> val
'9'
>>> val = str(42565)
>>> val
'42565'

为什么我得到'9'以上的值?

实施

我想显示列表的值
假设list = [1,2,3]根据字符串011
所以输出将是

2
3

1 个答案:

答案 0 :(得分:0)

011

拥有' 0'前缀,被解释为八进制(基数为8)的数字。 1 * 8 + 1 = 9

如果要迭代字符,只需将其括在引号中即可将其设为字符串:

val = '011'

要将像这样的0和1字符的字符串转换为整数,您可以像这样调用int

int(val, base=2)

要绕过字符串解析,只需将二进制常量赋给变量,请使用0b前缀:

val = 0b011
print val     # outputs 3