python核心编程第13章答案

13-6.
几何。创建一个直线/直线段类。除主要的数据属性:一对坐标值(参见上一个练习)外,它还具有长度和斜线属性。你需要覆盖repr()方法(如果需要的话,还有str()方法),使得代表那条直线(或直线段)的字符串表示形式是由一对元组构成的元组,即((x1,y1)、(x2,y2))。总结:
repr() 将直线的两个端点(始点和止点)显示成一对元组
length 返回此线段的长度 - 不要使用“len”,因为这样使人误解它是整型。
slope 返回此线段值线段的斜率(或在适当的时候返回None)
代码如下:

form math import sqrt 

class Line(object):

    def __init__(self,x1=0,y1=0,x2=0,y2=0):
        self.x1=x1
        self.y1=y1
        self.x2=x2

    def length(self):
        '''求直线的长度'''
        self.length=round((sqrt((self.x1-self.x2)**2+(self.y1-self.y2)**2)),2)
        return self.length

    def slope(self):
        '''求直线的斜率'''
        if self.x1==self.x2:
            self.slope='None'
        else:
            self.slope=(self.y2-self.y1)/(self.x2-self.x1)
        return self.slope

    def __repr__(self):
        '''将直线的两个端点(终点和始点)显示成一对元祖!'''
        self.point1=(self.x1,self.y1)
        self.point2=(self.x2,self.y2)
        return repr((self.point1,self.point2))
if __name__==__main__:
    l=Line()
    print(l)
    li=Line(1,2,3,4)
    print(li.slope())
    print(li.length())

参考python核心编程习题
欢迎留言讨论和交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值