def is_odd(num):
return num & 0x1
It is not the most readable, but it is quick:
In [11]: %timeit is_odd(123443112344312)
10000000 loops, best of 3: 164 ns per loop
versus
def is_odd2(num):
return num % 2 != 0
In [10]: %timeit is_odd2(123443112344312)
1000000 loops, best of 3: 267 ns per loop
Or, to make the return values the same as is_odd
:
def is_odd3(num):
return num % 2
In [21]: %timeit is_odd3(123443112344312)
1000000 loops, best of 3: 205 ns per loop