Understanding numeric data types in python