I am trying to iterate over the input011 as a string like:
val = str(011)for _iter in range(len(val)): if _iter[i]=='1': print "yes"But on checking the values, it seems to give different ouput.
>>> val = str(011)>>> val'9'>>> val = str(42565)>>> val'42565'Why I am getting'9' for the above value ??
Implementation:
I want to display the values of a list
supposelist = [1,2,3] according to the string011
so the output will be
23- 1Can you elaborate on the output you're trying to get?Mureinik– Mureinik2016-08-12 12:44:07 +00:00CommentedAug 12, 2016 at 12:44
- 2Isn't the
0prefix for octal? Also, use0bfor binary and0ofor octal and forward compatibility.Heman Gandhi– Heman Gandhi2016-08-12 12:47:26 +00:00CommentedAug 12, 2016 at 12:47
1 Answer1
011Having a '0' prefix, is interpreted as anoctal (base 8) number. 1*8 + 1 = 9
If you want to iterate over the characters, then simply make it a string by enclosing it in quotes:
val = '011'To convert a string of 0 and 1 characters like this to aninteger, you can callint like this:
int(val, base=2)To bypass the string parsing, and simply assign a binary constant to a variable, use the0b prefix:
val = 0b011print val # outputs 3Comments
Explore related questions
See similar questions with these tags.

