day17-面向对象作业

  1. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Rectangle:
        def __init__(self, long=1, wide=1):
            self.l = long
            self.w = wide
    
        def area(self):
            print(self.l*self.w)
    
        def perimeter(self):
            print((self.l+self.w)*2)
    
    p1 = Rectangle(2,3)
    p1.perimeter()
    p1.area()
    
  2. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

    class Point:
        def __init__(self, x=0, y=0):
            self.x = x
            self.y = y
    
        def distance_xy(self, other):
            print(f'与新点的距离是{((other.x-self.x)**2+(other.y-self.y)**2)**0.5}')
    
    
    p1 = Point(3, 4)
    p2 = Point(0, 0)
    p1.distance_xy(p2)
    
  3. 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切

    import math
    class Circle:
        def __init__(self, r=1, x=1, y=1):
            self.r = r
            self.x = x
            self.y = y
    
        def area(self):
            print((self.r)**2*math.pi)
    
        def perimeter(self):
            print(2*math.pi*self.r)
    
        def judge_tangency(self, other):
            R = (self.r+other.r)
            distance = ((other.x-self.x)**2+(other.y-self.y)**2)**0.5
            if R == distance:
                print('两圆相切')
            else:
                print('不相切')
    
    
    c1 = Circle(1, 1, 1)
    c2 = Circle(2, 2, 2)
    c1.area()
    c2.perimeter()
    c1.judge_tangency(c2)
    
  4. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Segment:
        def __init__(self, x1, y1, x2, y2):
            self.x1 = x1
            self.y1 = y1
            self.x2 = x2
            self.y2 = y2
    
        def len_(self):
            print(((self.x1-self.x2)**2+(self.y1-self.y2)**2)**0.5)
    
    
    s1 = Segment(1, 2, 3, 4)
    s1.len_()
    
  5. 定义一个狗类和一个人类:

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

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

class People:
    def __init__(self, name, age, dog):
        self.people_name = name
        self.age = age
        self.dog = dog

    def walk_the_dog(self):
        print(f'{self.people_name}{self.age}岁在溜{self.dog}')


class Dog:
    def __init__(self, name, gender='公狗', breed='泰迪'):
        self.dog_name = name
        self.dog_gender = gender
        self.dog_breed = breed

    def woof(self):
        print(f'{self.dog_gender}{self.dog_name}在叫唤')


p1 = People('小花', 12, '小奶狗')
p1.walk_the_dog()
d1 = Dog('小奶狗')
d1.woof()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值