Pythonにおける `//` の意味(例を含む)

Pythonでは、//
は 床除算演算子 です。2つの数を割り、結果を最も近い整数に 切り下げ ます。
例えば:
print(10 // 3) # 出力: 3
print(-10 // 3) # 出力: -4
重要なポイント
//
は 床除算 を行い、結果を 切り下げ ます。- 整数 と 浮動小数点数 の両方で動作します。
- 常に 負の無限大 (
-∞
) に向かって 丸めます。
床除算 (//
) の理解
//
演算子は2つの数を割りますが、浮動小数点の結果を返す代わりに、最も近い整数に 切り捨て ます(切り下げます)。
例:
print(7 // 2) # 出力: 3 (3.5ではなく)
print(-7 // 2) # 出力: -4 (-∞に向かって丸める)
//
は浮動小数点数をどのように扱うか?
オペランドの1つが 浮動小数点数 であっても、結果は浮動小数点形式で 床関数 が適用されたままです。
print(7.0 // 2) # 出力: 3.0
print(-7.5 // 2) # 出力: -4.0
/
と //
の違い
演算子 説明 例 /
通常の除算 (浮動小数点数を返す) 5 / 2 = 2.5
//
床除算 (切り下げる) 5 // 2 = 2
//
はいつ使うべきか?
- 整数のみが必要な場合 (例: アイテムの数を数える)。
- 浮動小数点数の精度エラーを回避する場合 (例: 配列のインデックス指定)。
- ループ内で整数の結果を保証する場合。
例:ページネーションに //
を使用する:
items_per_page = 10
total_items = 95
pages = total_items // items_per_page
print(pages) # 出力: 9
よくある質問
いいえ、オペランドの1つが浮動小数点数の場合、結果は浮動小数点数になります。
`//` は負の無限大 (`-∞`) に向かって丸めるからです。
はい、`a // b` は `math.floor(a / b)` と等価です。
結論
Pythonの //
演算子は 床除算 を行い、結果を最も近い整数に 切り下げ ます。整数の計算、ループ、ページネーション を扱う際に便利です。
Listen to your bugs 🧘, with OpenReplay
See how users use your app and resolve issues fast. Loved by thousands of developers