美文网首页
day14-类和对象1-作业

day14-类和对象1-作业

作者: _桑心人 | 来源:发表于2018-10-17 20:05 被阅读0次

    1. 声明一个电脑类

    属性:品牌、颜色、内存大小

    方法:打游戏、写代码、看视频

    a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性

    b.通过attr相关方法去获取、修改、添加和删除它的属性

    代码如下

    class Computer:
        def __init__(self, brand, color, memory):
            self.brand = brand
            self.color = color
            self.memory = memory
    
        def play_game(self):
            print('打游戏')
    
        def play_code(self):
            print('写代码')
    
        def look_video(self):
            print('看视频')
    
    
    # a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
    computer = Computer('华硕', '纯黑', '500G')
    # 获取
    print(computer.brand)
    print(computer.color)
    # 修改
    computer.brand = '联想'
    print(computer.brand)
    # 添加
    computer.place = 64
    print(computer.place)
    # 删除
    del computer.place
    print('=================')
    
    # b.通过attr相关方法去获取、修改、添加和删除它的属性
    # 获取
    print(getattr(computer, 'brand'))
    print(getattr(computer, 'color'))
    # 修改
    setattr(computer, 'color', '白金')
    print(getattr(computer, 'color'))
    # 添加
    setattr(computer, 'place', 64)
    print(getattr(computer, 'place'))
    # 删除
    delattr(computer, 'place')
    

    运行如下

    华硕
    纯黑
    联想
    64
    =================
    联想
    纯黑
    白金
    64
    

    2.声明一个人的类和狗的类:

    狗的属性:名字、颜色、年龄

    狗的方法:叫唤

    人的属性:名字、 年龄、狗

    人的方法:遛狗

    a.创建人的对象名字叫小明,让他拥有一条狗 ,然后让小明去遛狗

    代码如下

    class Dog:
        def __init__(self, name, color, age):
            self.name = name
            self.color = color
            self.age = age
    
        def bark(self):
            print('汪汪!!!')
    
    
    class Person:
        def __init__(self, name, age, dog=None):
            self.name = name
            self.age = age
            self.dog = dog
    
        def walk_dog(self):
            if self.dog:
                print(self.name + '在遛狗' + dog.name)
                dog.bark()
            else:
                print('没有狗')
    # a.创建人的对象名字叫小明,让他拥有一条狗,然后让小明去遛狗
    
    
    dog = Dog('旺财', '灰色', 12)
    person = Person('小明', 18, dog)
    person.walk_dog()
    

    运行如下

    小明在遛狗旺财
    汪汪!!!
    

    3.声明一个矩形类:

    属性: 长、宽

    方法:计算周长和面积

    a.创建不同的矩形,并且打印其周长和面积

    代码如下

    class girthArea:
        def __init__(self, long=0, wide=0):
            self.long = long
            self.wide = wide
    
        def girth_area(self):
            self.girth = 0
            self.area = 0
            self.girth = (self.long + self.wide) * 2
            self.area = self.long * self.wide
            print('其矩形周长为:', self.girth)
            print('其矩形面积为:', self.area)
            return self.girth, self.area
    
    
    girt_area = girthArea(4, 3)
    girt_area.girth_area()
    

    运行如下

    其矩形周长为: 14
    其矩形面积为: 12
    

    4.创建一个学生类:

    属性:姓名,年龄,学号,成绩

    方法:答到,展示学生信息

    创建一个班级类: 属性:学生,班级名

    方法:添加学生,删除学生,点名, 获取班级中所有学生的平均值, 获取班级中成绩最好的学生

    代码如下

    class Student:
        def __init__(self, name='', age=0, score=0, study_id=''):
            self.name = name
            self.age = age
            self.study_id = study_id
            self.score = score
    
        def replied(self):
            print('%s,到!' % self.name)
    
        def show_message(self):
            print(self.__dict__)
    
    
    import random
    
    
    class Class:
        # 类字段
        creat_id = ('python'+str(x).rjust(3, '0') for x in range(1, 101))
    
        def __init__(self, name):
            self.students = []
            self.name = name
    
        # 添加学生
        def add_student(self):
            # 输入学生信息
            name = input('姓名:')
            age = int(input('年龄:'))
            id = next(Class.creat_id)
            score = random.randint(0, 100)
            # 创建学生对象
            stu = Student(name, age, score, id)
            self.students.append(stu)
            print('添加成功:')
            stu.show_message()
    
        # 删除学生
        def del_student(self):
            del_name = input('姓名:')
            count = len(self.students)   # 删除前学生的个数
    
            for stu in self.students.copy():
                if stu.name == del_name:
                    self.students.remove(stu)
    
            if count == len(self.students):
                print('没有该学生!')
    
        def call(self):
            for stu in self.students:
                print(stu.name)
                # 学生答到
                stu.replied()
    
        def average_score(self):
            scores = 0
            for stu in self.students:
                scores += stu.score
    
            return scores/len(self.students)
    
        def most_excellent_student(self):
            return max(self.students, key=lambda stu: stu.score)
    
    
    class1 = Class('python1807')
    for _ in range(5):
        class1.add_student()
    

    相关文章

      网友评论

          本文标题:day14-类和对象1-作业

          本文链接:https://www.haomeiwen.com/subject/vhirzftx.html