pythonpython-3.xpython-2.xinteger-divisionfloor-division

What does the "variable //= a value" syntax mean in Python?


I came across with the code syntax d //= 2 where d is a variable. This is not a part of any loop, I don't quite get the expression.
Can anybody enlighten me please?


Solution

  • // is a floor division operator. The = beside it means to operate on the variable "in-place". It's similar to the += and *= operators, if you've seen those before, except for this is with division.

    Suppose I have a variable called d. I set it's value to 65, like this.

    >>> d = 65
    

    Calling d //= 2 will divide d by 2, and then assign that result to d. Since, d // 2 is 32 (32.5, but with the decimal part taken off), d becomes 32:

    >>> d //= 2
    >>> d
    32
    

    It's the same as calling d = d // 2.