1

I am trying to iterate over the input 011 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
suppose list = [1,2,3] according to the string 011
so the output will be

2
3
2
  • 1
    Can you elaborate on the output you're trying to get? Commented Aug 12, 2016 at 12:44
  • 2
    Isn't the 0 prefix for octal? Also, use 0b for binary and 0o for octal and forward compatibility. Commented Aug 12, 2016 at 12:47

1 Answer 1

2
011

Having a '0' prefix, is interpreted as an octal (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 an integer, you can call int like this:

int(val, base=2)

To bypass the string parsing, and simply assign a binary constant to a variable, use the 0b prefix:

val = 0b011
print val     # outputs 3
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.