请问:
之间有什么区别?return float((Y2-Y1))/(X2-X1)
和
return float((Y2-Y1)/(X2-X1))
我的整个代码是:
class Line(object):
def __init__(self,coor1,coor2):
self.coor1 = coor1
self.coor2 = coor2
def slope(self):
x1,y1 = self.coor1
x2,y2 = self.coor2
return float((Y2-Y1))/(X2-X1)
coor1 = (3,2)
coor2 = (8,10)
li = Line(coor1,coor2)
li.slope()
,答案应为1.6,但如果我的代码中的返回部分为return float((Y2-Y1)/(X2-X1))
,则答案为1.0。
答案 0 :(得分:2)
在Python 2中,使用' /'进行整数除法除非您导入3.x功能,否则会抛弃余数。
>>> 8.0/5
1.6
>>> 8/5
1
>>> from __future__ import division
>>> 8/5
1.6
分配' //'总是扔掉剩余的东西。
>>> 8//5
1
答案 1 :(得分:1)
Python 2整数除法:
>>> float(8) / 5
1.6
>>> float(8 / 5)
1.0
修复:
>>> from __future__ import division
>>> float(8) / 5
1.6
>>> float(8 / 5)
1.6
答案 2 :(得分:0)
在python 2中,除法默认为整数1,它将始终舍入为int
在你的情况下
float(8/5)
你正在施放以浮动1.6的除法结果并舍入为1.0
HOwever,通过使用float(8)将8转换为float,然后除以5,您将强制执行浮动除法,从而得到正确的结果。
会发生同样的事情8/float(5)