primitive types representation is the essence of programming -"the mythical man month, brooks program updates variables in memory according to its instructions variables come in types-- type is classification of data that spells out possible values for that type and the operations that can be performed on it type can be provided by the language or defined by the programmer in python everything is an object--this includes booleansintegerscharactersetc primitive types boot camp writing program to count the number of bits that are set to in an integer is good way to get up to speed with primitive types the following program tests bits one-at- -time starting with the least-significant bit it illustrates shifting and maskingit also shows how to avoid hard-coding the size of the integer word def count_bits ( )num_bits while xnum_bits + >> return num_bits since we perform ( computation per bitthe time complexity is ( )where is the number of bits needed to represent the integere bits are needed to represent which is ( ) in binary the techniques in solution on the facing pagewhich is concerned with counting the number of bits modulo the paritycan be used to improve the performance of the program given above know your primitive types python has number of build-in typesnumerics ( integer)sequences ( list)mappings ( dict)as well as classesinstances and exceptions all instances of these types are objects integers in python are unbounded--the maximum integer representable is function of the available memory the constant sys maxsize can be used to find the word-sizespecificallyit' the maximum value integer that can be stored in the worde ** on -bit machine bounds on floats are specified in sys float_info be very familiar with the bit-wise operators such as & , | >> - << ~ ^ negative numbers are treated as their ' complement value (there is no concept of an unsigned shift in pythonsince integers have infinite precision