/ / Защо това разделение не се извършва правилно? - питон, python-2.x, разделение

Защо това разделение не се извършва правилно? - python, python-2.x, разделяне

Имам странен проблем в 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

Благодаря

Отговори:

18 за отговор № 1

Горното поведение е вярно за Python 2. Поведението на / е фиксиран в Python 3. В Python 2 можете да използвате:

from __future__ import division

и след това използвайте / за да получите желания резултат.

>>> 5 / 2
2
>>> from __future__ import division
>>> 5 / 2
2.5

Тъй като разделяте две цели числа, резултатът се получава като цяло число.

Или променете един от номерата на a float.

>>> 5.0 / 2
2.5

9 за отговор № 2

Това се прави правилно.

50/60 = 0

Може би търсите 50.0 / 60.0 = 0.83333333333333337, можете да прехвърлите променливите си, за да получите това:

print  float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])

3 за отговор № 3

Това е начина, по който целочисленото разделение работи в питон. Или използвайте float или конвертирайте в float в изчислението си:

float(pointB[1]-pointA[1]) / (pointB[0]-pointA[0])