You can do that in python, you're just not using the correct method. When you want to retrieve part of a number, the operation you're trying to accomplish is called masking.
And you do that with a mask: number & 0xF0 will retreive bits 4 to 7 (without moving them).
So (number & 0xF0) >> 4 will retrieve bits 4 to 7, and shift them all the way to the right.
As for the mask, ((1 << end) - 1) - ((1 << start) - 1) should build a correct mask. So...
mask = ((1 << end) - 1) - ((1 << start) - 1)
result = (number & mask) >> start
Actually, since you shift to the right right after, you don't even have to mask out the bits below those you want, so this will work just as well:
mask = ((1 << end) - 1)
result = (number & mask) >> start
5 << 64 = 92233720368547758080L. Keep in mind that integers in Python don't work like those in C.