Q:

Why would one use binary integer literals instead of integers or floats in python?

Shouldn't we keep code as simple and easy to understand as possible? What are the advantages of binary over floats and integers in python and is it possible to create floats with binary. Also, when would you use it?

A:

Assuming that you mean:

Why does Python have binary integer literals?

e.g. allowing  0b1010 as well as 10, then the answer is that sometimes that is the most "simple and easy to understand" approach to writing code. 
For example, the number I use above could be a bitmask, indicating the combination of the second and fourth options. Which is clearer:
a = 0b0001
b = 0b0010
c = 0b0100
d = 0b1000

x = 0b1010

or:
a = 1
b = 2
c = 4
d = 8

x = 10

(In practice you'd just use x = a | c and e.g. re actually uses decimal literals for the flags, but I needed an example and note that the bitwise operations on integers are also easier to understand in binary notation.)
See this comment for another reason, sometimes binary is part of the language of the domain you're working in:

Because this way the code will be more readable. My implementation is
  based on some Specification which uses binary numbers. –  Misha
  Moroshko May 11 '10 at 0:36

And no, there is no binary floating point literal in Python. 

