|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位好,
定义一个点(Point)类和直线(Line)类,使用 getLen 方法可以获得直线的长度。
提示:
设点 A(X1,Y1)、点 B(X2,Y2),则两点构成的直线长度 |AB| = √((x1-x2)2+(y1-y2)2)
Python 中计算开根号可使用 math 模块中的 sqrt 函数
直线需有两点构成,因此初始化时需有两个点(Point)对象作为参数
在上述问题中,我写的代码见问题末尾。
但是,该代码在IDLE中运行迟迟不出结果,中断程序后,调用属性c.lines可以查看已经算出结果。
请问为什么会出现这种现象?如何解决?
- import math
- class Point:
- def __init__(self,x,y):
- self.x=x
- self.y=y
- class Line :
- def __init__(self,a,b):
- self.a=a
- self.b=b
- self.len= math.sqrt ((self.a.x-self.b.x)*(self.a.x-self.b.x)+(self.a.y-self.b.y)*(self.a.y-self.b.y))
-
- def lines(self):
- return self.len
- a=Point(0,4)
- b=Point(3,0)
- c=Line(a,b)
- c.lines()
复制代码
你没写 print 语句还能输出东西?
IDLE 在交互模式下, 不用 print 就会把变量或对象的方法返回的值打印出来。
IDLE 但是在编辑器模式写完程序运行,你没用 print 函数,你直接写变量名或对象的方法,
是不会打出结果的。
改好滴代码:
- import math
- class Point:
- def __init__(self,x,y):
- self.x=x
- self.y=y
- class Line :
- def __init__(self,a,b):
- self.a=a
- self.b=b
- self.len= math.sqrt ((self.a.x-self.b.x)*(self.a.x-self.b.x)+(self.a.y-self.b.y)*(self.a.y-self.b.y))
-
- def lines(self):
- return self.len
- a=Point(0,4)
- b=Point(3,0)
- c=Line(a,b)
- print(c.lines())
复制代码
|
|