day14-面向对象作业

  1. 定义一个狗类和一个人类:

    狗拥有属性:姓名、性别和品种 拥有方法:叫唤

    人类拥有属性:姓名、年龄、狗 拥有方法:遛狗

    class Dog():
        def __init__(self,name,gender,breed):
            self.name=name
            self.gender=gender
            self.breed=breed
        def func_dog(self):
            print('叫唤')
    d1=Dog('旺财','公','金毛')
    print(d1.name,d1.gender,d1.breed)
    d1.func_dog()
    
    class Person:
        def __init__(self,name,age,dog=None):
            self.name=name
            self.age=age
            self.dog=dog
        def func_person(self):
            if self.dog:
                print('遛狗')
            else:
                print('没狗可遛')
    p1=Person('小明',20)
    print(p1.name,p1.age)
    p1.func_person()
    
  2. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Rectangle:
        def __init__(self,length,width):
            self.length=length
            self.width=width
        def get_area(self):
            return self.length * self.width
        def get_perimeter(self):
            return (self.length + self.width) * 2
        def __repr__(self):
            return f'lenth:{self.length},width:{self.width},周长:{self.get_perimeter()},面积:{self.get_area()}'
    r1 = Rectangle(4,5)
    print(r1.__repr__())   #lenth:4,width:5,周长:18,面积:20
    
  3. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

    class Two_dimensional:
        def __init__(self,point_x,point_y):
            self.point_x=point_x
            self.point_y=point_y
        def func1_distance(self,other_x,other_y):
            self.other_x=other_x
            self.other_y=other_y
            return ((self.point_x-self.other_x)**2+(self.point_y-self.other_y)**2)**0.5
    t1=Two_dimensional(4,2)
    print(t1.func1_distance(5,6))
    
  4. 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切

    import math
    class Circle:
        def __init__(self,r,center):
            self.r=r
            self.center=center
        def get_area(self):
            return math.pi*self.r**2
        def get_perimeter(self):
            return  math.pi*self.r*2
    
        def fun1(self,r1,center1):
            if self.r+r1==((self.center[0]-center1[0])**2+(self.center[1]-center1[1])**2)**0.5:
                return '外切'
            else:
                return '不外切'
    
    c1=Circle(4,(3,0))
    print(c1.get_area(),c1.get_perimeter())
    print(c1.fun1(5,(2,5)))
    
  5. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Lines:
        def __init__(self,start_point,end_point):
            self.start_point=start_point
            self.end_point=end_point
        def func_len(self):
            x=(self.start_point[0]-self.end_point[0])**2
            y=(self.start_point[1]-self.end_point[1])**2
            lenth=(x+y)**0.5
            return f'{self.start_point}点到{self.end_point}点的距离是:{lenth}'
    l1=Lines((2,5),(6,4))
    print(l1.func_len())
    
  6. 写一个斗地主游戏类(根据生活经验添加类的内容)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值