2

Pythonは、私が以前に目撃したことのない奇妙な動作を示しています。私が何をしたのか、何が起こったのかはわかりませんが、単純に入力すると、基本的に小数点付きのシェルでは動作しません。

>>> 2/3
0
>>> 3/2
1

%またはformat()を使用してフォーマットしようとしても、ほとんど何も実行されません。基本的に、小数点は認識されません。

>>> a =2/3
>>> a
0
>>> format(a, '.5f')
'0.00000'

コードで何かをチェックするための単純な除算が必要でしたが、突然、これほど奇妙なものに遭遇しました。

Python2.7を使用しています

4

3 に答える 3

9

Python 2では/、デフォルトで「整数除算」を実行します。入れたら

from __future__ import division

スクリプトの上部で、必要な分割が行われます。これは、Python 3のデフォルトの動作になります。または、古いPythonバージョン(新しいコードには推奨されません)との互換性を維持したい場合は、

2. / 3.

または、変数を使用

x / float(y)
于 2012-09-07T14:09:41.307 に答える
3

a=2/3。

また

a = 2./3

少なくとも1つの数字はフロートである必要があります!

于 2012-09-07T14:08:15.570 に答える
2

整数のみで演算を実行しています。つまり、数値の小数部が削除されます。代わりに次のようなものが必要な2.0/3ので、浮動小数点演算が使用されます。

于 2012-09-07T14:07:53.890 に答える