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