day14-面向对象作业

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

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

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

    class Dog:
        def __init__(self, dog_name, dog_gender, dog_breed):
            self.dog_name = dog_name
            self.dog_gender = dog_gender
            self.dog_breed = dog_breed
    
        def cry_out(self):
            print('叫唤')
    
    
    class Person:
        def __init__(self, name, age, dog):
            self.name = name
            self.age = age
            self.dog = dog
    
        def walk_the_dog(self):
            print('遛狗')
    
  2. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Rectangle:
        def __init__(self, c, k):
            self.length = c
            self.width = k
    
        def get_area(self):
            return self.length*self.width
    
        def get_perimeter(self):
            return (self.length+self.width)*2
    
        def __repr__(self):
            return f'{self.__dict__}'
    
    
    r1 = Rectangle(10, 9)
    print(r1.get_area())
    print(r1.get_perimeter())
    print(r1)
    
  3. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

    class Coordinate:
        def __init__(self, x, y):
            self.x = x
            self.y = y
    
        def distance(self, point):
            return ((self.x - point.x) ** 2 + (self.y - point.y) ** 2) ** 0.5
    
    
    p1 = Coordinate(6, 10)
    p2 = Coordinate(4, 5)
    
    dis = p1.distance(p2)
    print(f'点p1到p2的距离为{dis:.2f}')
    
  4. 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切

    class Circle:
        pi = 3.1415926
    
        def __init__(self, r, o_x, o_y):
            self.r = r
            self.o_x = o_x
            self.o_y = o_y
    
        def perimeter(self):
            return 2*Circle.pi*self.r
    
        def area(self):
            return Circle.pi*self.r**2
    
        def exterior_contact(self, cir2):
            if self.r + cir2.r == ((self.o_x-cir2.o_x)**2 + (self.o_y-cir2.o_y)**2)**0.5:
                return "相切"
            else:
                return '不相切'
    
    
    c1 = Circle(5, 2, 4)
    c2 = Circle(8, 5, 12)
    ec = c1.exterior_contact(c2)
    print(ec)
    print(f'圆c1的周长为{c1.perimeter():.3f},面积为{c1.area():.3f}')
    print(f'圆c2的周长为{c2.perimeter():.3f},面积为{c2.area():.3f}')
    
    
  5. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Segment:
        def __init__(self, begin, end):
            self.begin = begin
            self.end = end
    
        def get_length(self):
            return self.end - self.begin
    
    
    s = Segment(5, 10)
    s.get_length()
    print(f'该线段长度为{s.get_length()}')
    
  6. 写一个斗地主游戏类(根据生活经验添加类的内容)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值