(Sponsors) Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
Python bin() function
Updated on Jan 07, 2020
The bin()
function returns the binary representation of the integer as a string.
Its syntax is as follows:
bin(number) -> binary representation
Parameter | Description |
---|---|
number |
Any numeric value |
Here is an example:
1 2 3 4 5 6 7 8 9 10 11 12 | >>>
>>> bin(4) # convert decimal to binary
'0b100'
>>>
>>>
>>> bin(0xff) # convert hexadecimal to binary, 0xff is same decimal 255
'0b11111111'
>>>
>>>
>>> bin(0o24) # convert octacl to binary, 0o24 is same decimal 20
'0b10100'
>>>
|
bin() with User-defined object #
To use bin()
with user-defined objects, we have to first overload the __index__()
method.
The __index__()
method is used to coerce an object to an integer, in the context of slicing and index. For instance, consider the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | >>>
>>> l = [1, 2, 3, 4, 5]
>>>
>>> x, y = 1, 3
>>>
>>>
>>> l[x]
2
>>>
>>>
>>> l[y]
4
>>>
>>>
>>> l[x:y]
[2, 3]
>>>
|
When we access items in a list using indexing and slicing, internally Python calls __index__()
method of the int
object.
1 2 3 4 5 6 7 8 9 10 11 12 | >>>
>>> l[x.__index__()] # same as l[x]
2
>>>
>>>
>>> l[y.__index__()] # same as l[y]
4
>>>
>>>
>>> l[x.__index__():y.__index__()] # # same as l[x:y]
[2, 3]
>>>
|
In addition to bin()
, the __index__()
method is also called when you call hex()
, and oct()
on the object. Here is an example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | >>>
>>> class Num:
... def __index__(self):
... return 4
...
>>>
>>> l = [1, 2, 3, 4, 5]
>>>
>>>
>>> n1 = Num()
>>>
>>>
>>> bin(n1)
0b100
>>>
>>>
>>> hex(n1)
0x4
>>>
>>>
>>> oct(n1)
0o4
>>>
>>>
>>> l[n1]
5
>>>
>>>
>>> l[n1.__index__()]
5
>>>
|
Other Tutorials (Sponsors)
This site generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
View Comments