それはいわゆるを実装しfloor division
ます。フロア除算(ここで示され//
ます)は小数を切り捨てて整数の結果を返しますが、「通常の」除算は「期待できる」(小数を含む)答えを返します。Python 3.xでは、2つの演算子がより明確に区別されました。つまり、2つの演算子は異なる結果を返します。Python3を使用した例を次に示します。
>>> 10 / 3
3.3333333333333335
>>> 10 // 3
3
Python 3.xより前では、特別な組み込みを使用しない限り、2つの間に違いはありませんfrom __future__ import division
。これにより、除算演算子がPython 3.xの場合と同じように実行されます(これはPython 2.6.5を使用しています)。
In [1]: 10 / 3
Out[1]: 3
In [2]: 10 // 3
Out[2]: 3
In [3]: from __future__ import division
In [4]: 10 / 3
Out[4]: 3.3333333333333335
In [5]: 10 // 3
Out[5]: 3
したがって、のようなものが表示された場合はn //= 10
、これまでと同じ// / etc構文を使用して+=
い-=
ます*=
。ここでは、の現在の値を取得n
し、2番目の引数として次の変数を使用して等号の前で演算を実行し、結果を返します。にn
。例えば:
In [6]: n = 50
In [7]: n += 10
In [8]: n
Out[8]: 60
In [9]: n -= 20
In [10]: n
Out[10]: 40
In [11]: n //= 10
In [12]: n
Out[12]: 4