Pythonで奇妙な問題が発生しました:除算が正しく実行されていません:
print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
結果は次のとおりです。
100
50
100
40
0
ありがとう
Pythonで奇妙な問題が発生しました:除算が正しく実行されていません:
print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
結果は次のとおりです。
100
50
100
40
0
ありがとう
上記の動作はPython2にも当てはまります。の動作はPython3/
で修正されました。Python2では次を使用できます。
from __future__ import division
そして、/
あなたが望む結果を得るために使用します。
>>> 5 / 2
2
>>> from __future__ import division
>>> 5 / 2
2.5
2つの整数を除算しているため、結果は整数になります。
または、番号の1つを。に変更しfloat
ます。
>>> 5.0 / 2
2.5
それは正しく行われます。
50/60 = 0
50.0 / 60.0 = 0.83333333333333337を探している場合は、変数をfloatにキャストして、次のようにすることができます。
print float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
これは、Pythonで整数除算がどのように機能するかです。計算でfloatを使用するか、floatに変換します。
float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])