Pythonには2種類の除算演算子があり、使い方に違いがあります。/浮動小数点除算を行い、必ず小数を含む結果が返されます。一方、//フロア除算(整数除算)を行い、小数点以下を切り捨てた整数が返されます。

///の違い

例えば、5 / 2の結果は2.5ですが、5 // 22になります。また、//は整数だけでなく浮動小数点数でも使用可能で、5.0 // 2.02.0を返します。

Python 2とPython 3の違い

Python 2では、整数同士の除算(/)は整数除算を行い、結果が整数になります。しかし、Python 3では常に浮動小数点除算がデフォルトです。Python 2で同じ動作を得たい場合、from __future__ import divisionを使って、Python 3の動作を有効にできます。

# Python 2
print(5 / 2)  # 結果: 2
# Python 3
print(5 / 2)  # 結果: 2.5

フロア除算と負の数

フロア除算//は、負の数に対しても小数点以下を切り捨て、結果を負の無限大方向に丸めます。例えば、-5 // 2-3を返します。これは、単純な切り捨てとは異なる動作です。

print(-5 // 2)  # 結果: -3

まとめ

Pythonで除算を行う際は、用途に応じて///を使い分けることが重要です。浮動小数点結果が必要な場合は/を、整数結果が必要な場合は//を使います。また、Python 2からPython 3への移行時には/の挙動に注意が必要です。