我试图将输入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
答案 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