- notice that can be used both as unary operator (negationand as binary operator (subtraction)as is common in most programming languages where python differs from the crowd is when it comes to division the division operator produces floating-point valuenot an integermany other languages will produce an integertruncating any fractional part if we need an integer resultwe can always convert using int((or use the truncating division operator //discussed latera + at first sight the preceding statements are unsurprisingparticularly to those familiar with -like languages in such languagesaugmented assignment is shorthand for assigning the results of an operation--for examplea + is essentially the same as howeverthere are two important subtleties hereone python-specific and one to do with augmented operators in any language the first point to remember is that the int data type is immutable--that isonce assignedan int' value cannot be changed sowhat actually happens behind the scenes when an augmented assignment operator is used on an immutable object is that the operation is performedand an object holding the result is createdand then the target object reference is re-bound to refer to the result object rather than the object it referred to before soin the preceding case when the statement + is encounteredpython computes stores the result in new int objectand then rebinds to refer to this new int (and if the original object was referring to has no more object references referring to itit will be scheduled for garbage collection figure illustrates this point the second subtlety is that operatorb is not quite the same as operator the augmented version looks up ' value only onceso it is potentially faster alsoif is complex expression ( list element with an index position calculation such as items[offset index])using the augmented version may numeric operators and functions