538

どちらか一方を使用する利点はありますか? Python 2 では、どちらも同じ結果を返すようです。

>>> 6/3
2
>>> 6//3
2
4

16 に答える 16

734

Python 3.x では、5 / 2が返さ2.5れ、5 // 2が返され2ます。前者は浮動小数点除算、後者は整数除算とも呼ばれる床除算です。

from __future__ import division2.x 行の Python 2.2 以降では、Python 2.x が 3.x の動作を採用する原因となるを実行しない限り、整数に違いはありません。

将来のインポートに関係なく、それが操作のフロア分割結果であるため、5.0 // 2返されます。2.0

PEP 238: 除算演算子の変更で詳細な説明を見つけることができます。

于 2008-10-08T17:21:37.910 に答える
75

Python 2.x の説明:

Python 2.x ラインを明確にするために、/フロア分割でも真の分割でもありません。

/は、両方の引数がの場合はフロア除算ですが、いずれかの引数が のint場合は真の除算です。float

于 2012-07-22T21:50:35.450 に答える
37

//あなたのタイプに関係なく、「フロア分割」を実装します。だから 、両方を与えますが1.0/2.0、とを与えます。0.51/21//21.0//2.00

詳細はPEP 238: 除算演算子の変更を参照してください。

于 2008-10-08T17:19:59.410 に答える
31

/ → 浮動小数点除算

// → フロア分割

Python 2.7 と Python 3.5 の両方でいくつかの例を見てみましょう。

Python 2.7.10 対 Python 3.5

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5

Python 2.7.10 対 Python 3.5

print (4/2)  ----> 2         Python 2.7
print (4/2)  ----> 2.0       Python 3.5

(Python 2.7 で) Python 3.5 と同じ出力が必要な場合は、次のようにします。

パイソン 2.7.10

from __future__ import division
print (2/3)  ----> 0.6666666666666666   # Python 2.7
print (4/2)  ----> 2.0                  # Python 2.7

一方、Python 2.7 と Python 3.5 の両方でフロア分割に違いはありません。

138.93//3 ---> 46.0        # Python 2.7
138.93//3 ---> 46.0        # Python 3.5
4//3      ---> 1           # Python 2.7
4//3      ---> 1           # Python 3.5
于 2016-07-24T12:39:19.667 に答える
23

皆さんも回答されている通り、//フロア分割です。

なぜこれが重要なのかというと//、Python 3.x バージョンを含む 2.2 以降のすべての Python バージョンで、明確に階層分割されているからです。

の動作は、次の/条件によって異なります。

  • アクティブな__future__インポートかどうか (モジュールローカル)
  • Python コマンド ライン オプション、-Q oldまたは-Q new
于 2009-11-09T23:55:18.570 に答える
13
>>> print 5.0 / 2
2.5

>>> print 5.0 // 2
2.0
于 2014-03-18T18:23:48.113 に答える
5

//フロア分割です。結果の整数フロアが常に得られます。もう 1 つは「通常の」分割です。

于 2008-10-08T17:19:15.887 に答える
5

二重スラッシュ ( //) はフロア分割です。

>>> 7//3
2
于 2008-10-08T17:19:42.953 に答える
2

方程式の答えは、小数点として .0 を使用して、次に小さい整数または浮動小数に丸められます。

>>>print 5//2
2
>>> print 5.0//2
2.0
>>>print 5//2.0
2.0
>>>print 5.0//2.0
2.0
于 2015-06-03T15:26:43.160 に答える