Pythonの浮動小数点除算と整数除算を知っていますか?

python2.2以降、「/」と「//」の2つの除算演算子があります。2つの最大の違いは次のとおりです。

python2.2より前のバージョンおよびpython2.2より後の3.0より前のバージョンのデフォルトでは、「/」による除算は、2つ以上の数値が表示され、結果が浮動小数点数として表される場合の浮動小数点数です。そのフロート部門
「//」は同じ部門、「//」をやっていません勝つために割り切れる結果であるにかかわらず、任意の2つの数の、小数部分は法律で割り切れるである、直接放棄して処理されていない
以下の著者でありますコンパイラでテストされたデータ。テストされたバージョンはpython2.7です。

オン"/":

3/2

1

3 / 2.0

1.5

3.0 / 2

1.5

10 / 3.0

3.3333333333333335

上記の例から、除数の1つが浮動小数点数である限り、得られる結果も浮動小数点数であると結論付けることができます。

以下は「//」についてです。

3 // 2

1

3 // 2.0

1.0

3.0 // 2

1.0

3.0 // 2.0

1.0

上記の例から、2つの整数が除算された場合でも、結果は整数であることがわかります。浮動小数点数を非浮動小数点数で除算すると、結果は浮動小数点数になります。ただし、計算の結果は小数部分を無視します。演算の結果は2つの整数の除算に似ていますが、浮動小数点数が得られます。さらに、「//」は2つの浮動小数点数の例外ではありません。

「/」と「//」の間で労働を分割する方法

デフォルトでは、これらの2つの演算子には大きなオーバーラップがあります。たとえば、2つの数値が両方とも整数の場合、2つの演算の結果に違いはありません。Pythonでこれら2つの作業を明確に分担したい場合。つまり、「/」は浮動小数点除算に使用でき、「//」は整数除算に使用できますプログラムの最初に次のステートメントを記述できます。

将来の輸入部門から

宣言後のテストの結果(以下でテストされたバージョンはpython2.7です)

将来の輸入部門から

3/2

1.5

3.0 / 2

1.5

3 / 2.0

1.5

3.0 / 2.0

1.5

3 // 2

1

3.0 // 2

1.0

3.0 // 2.0

1.0

3 // 2.0

1.0

-11/2

-5.5

上記のように、このステートメントを作成した後、 "/"は整数除算ではなく浮動小数点除算を実行することがわかります。

pyhton3では、「/」は浮動小数点除算を意味し、モジュールを導入する必要がないことにも注意してください。分子と分母がどちらもintの場合でも、戻り値は浮動小数点数になります

私を殺さないものは私をより強くする

おすすめ

転載: blog.csdn.net/waitingwww/article/details/107138872