2016-08-12 71 views
0

我想在輸入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'爲上述值?

實施

我想根據串011
顯示列表
假設list = [1,2,3]的數值,以便輸出將是

2 
3 
+1

你能詳細說明你想要得到的輸出嗎? – Mureinik

+2

是不是八進制的'0'前綴?另外,對於二進制使用'0b',對於八進制和向前兼容使用'0o'。 –

回答

0
011 

有一個' 0'前綴,被解釋爲八進制(基數8)數字。 1 * 8 + 1 = 9

如果你想遍歷字符,然後只需用引號括起來使其成爲一個字符串:

val = '011' 

要轉換的0串和1個字符,這樣到整數,你可以調用int這樣的:

int(val, base=2) 

要繞過字符串解析,並簡單地分配一個二進制常數變量,使用0b前綴:

val = 0b011 
print val  # outputs 3 
+0

謝謝我認爲這是真正的問題。 – bhansa