2018-09-06day14-作业

2018-09-06  本文已影响0人  猫爱老鼠丶

1.声明一个电脑类:
属性:品牌、颜色、内存大小
方法:打游戏、写代码、看视频
a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
b.通过attr相关方法去获取、修改、添加和删除它的属性

class Computer:
    def __init__(self, brand1='Dell', color1='黑色', memory_size1='4G'):
        self.brand = brand1
        self.color = color1
        self.memory_size = memory_size1
    @staticmethod
    def play_game(game):
        print('玩%s游戏', game)

    @staticmethod
    def write_code():
        print('写python代码')

    @staticmethod
    def watch_video(video):
        print('看%s视频' % video)
# 创建一个computer对象
computer = Computer()
# 获取computer对象的相关属性
print(computer.brand,computer.color,computer.memory_size)
# 修改computer对象的颜色属性和内存属性
computer.color = '白色'
computer.memory_size = '8G'
# 给computer对象添加尺寸属性
computer.size = 15.6
# 删除computer对象的颜色属性
del computer.color

# 获取computer对象的品牌属性
print(getattr(computer,'brand'))
# 修改computer对象的品牌属性为'Macbook'
setattr(computer,'brand','Macbook')
# 给computer对象添加颜色属性
setattr(computer,'color','粉色')
# 删除computer对象的内存属性
delattr(computer,'memory_size')

2.声明一个人的类和狗的类:
狗的属性:名字、颜色、年龄 狗的方法:叫唤
人的属性:名字、年龄、狗 人的方法:遛狗
a.创建人的对象小明,让他拥有一条狗大黄,然后让小明去遛

class Person:
    def __init__(self,name, age):
        self.name = name
        self.age = age
        self.dog = None # Dog类的对象
    def walk(self):
        if not self.dog:
            print('您的狗狗正在路上~~~')
            return
        print('%s在遛%s玩'%(self.name,self.dog.name))

class Dog:
    def __init__(self,name,color,age):
        self.name = name
        self.color = color
        self.age = age
    def bark(self):
        print('%s在汪汪叫'%self.name)
person = Person('小明','18')
person.dog = Dog('大黄', '黄色', 5)
person.walk()
person.dog.bark()

小明在遛大黄玩
大黄在汪汪叫

3.声明一个矩形类:
属性: 长、宽 方法:计算周长和面积
a.创建不同的矩形,并且打印其周长和面积

class Rectangle:
    def __init__(self,length,width):
        self.length = length
        self.width = width
    def perimeter(self):
        return (self.length+self.width)*2
    def area(self):
        return self.length*self.width
rec1 = Rectangle(4,5)
rec2 = Rectangle(3,10)
rec1.perimeter()
rec1.area()
rec2.perimeter()
rec2.area()

18
20
26
30

4.创建一个学生类:
属性:姓名,年龄,学号 方法:答到,展示学生信息
创建一个班级类:
属性:学生,班级名 方法:添加学生,删除学生,点名

class Student:
    def __init__(self,name, age=0, id=''):
        self.name = name
        self.age = age
        self.id = id
    def answer(self):
        print('%s到!'%self.name)
    def show(self):
        print(self.name, self.age, self.id)

class Class:
    def __init__(self, class_name):
        self.student = []
        self.name = class_name
        self.__count = 0
    def add_student(self):
        name = input('姓名:')
        age = input('年龄:')

        # 学号
        self.__count += 1
        id = 'stu' + str(self.__count).rjust(3,'0')
        stu = Student(name,int(age),id)

        # 将学生保存到班级中
        self.student.append(stu)
        print('添加成功!')
    def del_student(self):
        del_name = input('请输入要删除的学生名字:')

        flag = True
        # 遍历列表拿到的是学生对象
        for stu in self.student[:]:
            if stu.name == del_name:
                self.student.remove(stu)
                print('删除成功!')
                break
        else:
            flag = False
        if not flag:
            print('没有该学生!')
    def call(self):
        for stu in self.student:
            print(stu.name)
            stu.answer()

5.写一个类,封装所有和数学运算相关的功能(包含常用功能和常用值,例如:pi,e等)

class Function:
    pi = 3.141592653589793
    e = 2.718281828459045

    @staticmethod
    def add(*number):
        """
        多个数的和
        :param number:
        :return:
        """
        return sum(number)

    @staticmethod
    def sub(*number):
        """
        多个数相减
        :param number:
        :return:
        """
        number1 = list(number)[0]
        for num in list(number)[1:]:
            number1 -= num
        return number1

    @staticmethod
    def mul(*number):
        """
        多个数相乘
        :param number:
        :return:
        """
        sum = 1
        for num in number:
            sum *= num
        return sum

    @staticmethod
    def div(number1,number2):
        """
        两个数相除
        :param number1: 被除数
        :param number2: 除数
        :return:
        """
        return number1/number2

    @classmethod
    def circle_are(cls,r):
        """
        圆的面积
        :param r:
        :return:
        """
        return cls.pi*r**2
上一篇下一篇

猜你喜欢

热点阅读