美文网首页
May 5th_day14_homework

May 5th_day14_homework

作者: 3ae1c50960af | 来源:发表于2019-05-06 00:04 被阅读0次

    question1.声明⼀个电脑类: 属性:品牌、颜⾊、内存⼤小 方法:打游戏、写代码、看视频

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

    class Computer:
        """说明文档:电脑类"""
        def __init__(self, brand, color, memory_size):
            self.brand = brand
            self.color = color
            self.memory_size = memory_size
    
        def game(self):
            print('%s电脑可以玩游戏' % self.brand)
    
        def code(self):
            print('%s电脑可以写代码' % self.color)
    
        def video(self):
            print('%s电脑可以看视频' % self.memory_size)
    
    
    computer1 = Computer('apple', 'white', '16GB')
    computer1.game()
    computer1.code()
    computer1.video()
    # a.点方法
    print('该电脑的品牌:%s,颜色:%s,内存大小:%s' % (computer1.brand, computer1.color, computer1.memory_size))
    computer1.brand = 'dell'
    computer1.color = 'yellow'
    computer1.memory_size = '8GB'
    computer1.price = 7000
    print('该电脑的品牌:%s,颜色:%s,内存大小:%s,售价:%s' %
          (computer1.brand, computer1.color, computer1.memory_size, computer1.price))
    del computer1.price
    print('该电脑的品牌:%s,颜色:%s,内存大小:%s' % (computer1.brand, computer1.color, computer1.memory_size))
    # b.attr方法
    a = getattr(computer1, 'brand')
    b = getattr(computer1, 'color')
    c = getattr(computer1, 'memory_size')
    print('该电脑的品牌:%s,颜色:%s,内存大小:%s' % (a, b, c))
    setattr(computer1, 'brand', 'lenovo')
    setattr(computer1, 'price', '6500')
    a = getattr(computer1, 'brand')
    d = getattr(computer1, 'price')
    print('该电脑的品牌:%s,颜色:%s,内存大小:%s,售价:%s' % (a, b, c, d))
    delattr(computer1, 'price')
    print('该电脑的品牌:%s,颜色:%s,内存大小:%s' % (a, b, c))
    """
    apple电脑可以玩游戏
    white电脑可以写代码
    16GB电脑可以看视频
    该电脑的品牌:apple,颜色:white,内存大小:16GB
    该电脑的品牌:dell,颜色:yellow,内存大小:8GB,售价:7000
    该电脑的品牌:dell,颜色:yellow,内存大小:8GB
    该电脑的品牌:dell,颜色:yellow,内存大小:8GB
    该电脑的品牌:lenovo,颜色:yellow,内存大小:8GB,售价:6500
    该电脑的品牌:lenovo,颜色:yellow,内存大小:8GB
    """
    

    question2.声明⼀个人的类和狗的类:

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

    class Dog:
        def __init__(self, name, color, age=0):
            self.name = name
            self.color = color
            self.age = age
    
        def bark(self):
            print('%d岁%s的%s在开心的汪汪叫' % (self.age, self.color, self.name))
    
    
    class Person:
        def __init__(self, name, age, dog):
            self.name = name
            self.age = age
            self.dog = dog
    
        def walk_dog(self):
            print('%s有一条狗,狗的名字叫%s,他们正在散步' % (self.name, self.dog.name))
            self.dog.bark()
    
    
    dog1 = Dog('大黄', '黄色', 5)
    person1 = Person('张三', 33, dog1)
    person1.walk_dog()
    """
    张三有一条狗,狗的名字叫大黄,他们正在散步
    5岁黄色的大黄在开心的汪汪叫
    """
    

    question3.声明⼀一个圆类,自己确定有哪些属性和方法

    class Circle:
        def __init__(self, name, radius):
            self.name = name
            self.r = radius
            self.odometer = 0
    
        def sum_roll(self, meter=None):
            if not meter:
                meter = self.odometer
            return 2*3.14*self.r*meter
    
        def descriptive_circle(self):
            temp = self.sum_roll()
            print('这个圆叫做%s,它的半径为%d米,从它出生至今已滚动了%d圈,滚动了%d米' % (self.name, self.r, self.odometer, temp))
    
        def update_odometer(self, mileage):
            if mileage >= self.odometer:
                self.odometer = mileage
                print('初始化%s圆已滚动%d圈,合计滚动%d米' % (self.name, self.odometer, self.sum_roll()))
            else:
                print('滚动圈数不能回调')
    
        def increase_odometer(self, miles):
            if miles >= 0:
                print('%s圆已滚动了%d圈,滚动%d米' % (self.name, self.odometer, self.sum_roll()))
                self.odometer += miles
                print('%s圆继续滚动%d圈,滚动%d米' % (self.name, miles, self.sum_roll(miles)))
                print('%s圆累计滚动了%d圈,累计滚动%d米' % (self.name, self.odometer, self.sum_roll()))
            elif miles < 0:
                print('滚动圈数不能为负')
    
    
    print('========================================================')
    circle1 = Circle('haha', 2.5)
    circle1.descriptive_circle()
    print('========================================================')
    circle1.update_odometer(20)
    circle1.descriptive_circle()
    print('========================================================')
    circle1.increase_odometer(3)
    circle1.descriptive_circle()
    """
    张三有一条狗,狗的名字叫大黄,他们正在散步
    5岁黄色的大黄在开心的汪汪叫
    ========================================================
    这个圆叫做haha,它的半径为2米,从它出生至今已滚动了0圈,滚动了0米
    ========================================================
    初始化haha圆已滚动20圈,合计滚动314米
    这个圆叫做haha,它的半径为2米,从它出生至今已滚动了20圈,滚动了314米
    ========================================================
    haha圆已滚动了20圈,滚动314米
    haha圆继续滚动3圈,滚动47米
    haha圆累计滚动了23圈,累计滚动361米
    这个圆叫做haha,它的半径为2米,从它出生至今已滚动了23圈,滚动了361米
    """
    

    question4.

    创建⼀个学⽣生类:
    属性:姓名,年龄,学号
    方法:答到,展示学⽣信息

    创建一个班级类:
    属性:学⽣,班级名
    方法:添加学生,删除学生,点名, 求班上学生的平均年龄

    import random
    
    
    class Count:
        count = 0
    
    
    class Student(Count):
    
        def __init__(self, name, age):
            Count.count += 1
            self.name = name
            self.age = age
            self.stu_id = 'python' + str(Count.count).zfill(3)
            self.state = random.choice([True, False])
    
        def show_stu_info(self):
            print('学生学号:%s,姓名:%s,年龄:%d' % (self.stu_id, self.name, self.age))
    
        def sign_in(self):
            if self.state:
                print('%s到!' % self.name)
                return True
            else:
                print('无人应答')
                return False
    
    
    class Class:
        def __init__(self, class_name):
            self.class_name = class_name
            self.class_student = []
    
        def add_student(self):
            print('添加学生')
            while True:
                temp_name = input('请输入学生姓名:')
                while 1:
                    try:
                        temp_age = int(input('请输入学生年龄:'))
                        break
                    except ValueError:
                        print('年龄输入错误!')
                        print('请重新输入')
                temp_stu = Student(temp_name, temp_age)
                temp_stu.show_stu_info()
                self.class_student.append(temp_stu)
                value = input('是否继续添加?1.继续 2.返回')
                if value == '1':
                    pass
                elif value == '2':
                    break
    
        def del_student(self):
            print('删除学生')
            temp_stu_id = input('请输入需删除学生学号:')
            for key in self.class_student:
                if temp_stu_id == key.stu_id:
                    print('删除学生学号:%s,姓名:%s,年龄:%d' % (key.stu_id, key.name, key.age))
                    self.class_student.remove(key)
                    print('删除成功')
                    break
    
        def average(self):
            sum = 0
            i = 0
            for key in self.class_student:
                sum += key.age
                i += 1
            return sum/i
    
        def check(self):
            for key in self.class_student:
                print('%s在不在?' % key.name)
                if key.sign_in():
                    print('%s已确认签到' % key.name)
                else:
                    print('%s旷课' % key.name)
    
    
    def show_index():
        print('请先创建一个班级')
        class_name = input('请输入班级名称:')
        if class_name:
            class1 = Class(class_name)
            while True:
                print('==============')
                print('1.添加学生')
                print('2.删除学生')
                print('3.点到')
                print('4.学生平均年龄')
                print('5.退出')
                print('=============')
                value = input('请选择:')
                if value == '1':
                    class1.add_student()
                elif value == '2':
                    class1.del_student()
                elif value == '3':
                    class1.check()
                elif value == '4':
                    print(class1.class_name, '班学生的平均年龄为:', class1.average(), sep='')
                elif value == '5':
                    exit()
    
    
    if __name__ == '__main__':
        show_index()
    """
    请先创建一个班级
    请输入班级名称:python1902
    ==============
    1.添加学生
    2.删除学生
    3.点到
    4.学生平均年龄
    5.退出
    =============
    请选择:1
    添加学生
    请输入学生姓名:张三
    请输入学生年龄:李四
    年龄输入错误!
    请重新输入
    请输入学生年龄:20
    学生学号:python001,姓名:张三,年龄:20
    是否继续添加?1.继续 2.返回1
    请输入学生姓名:李四
    请输入学生年龄:30
    学生学号:python002,姓名:李四,年龄:30
    是否继续添加?1.继续 2.返回1
    请输入学生姓名:王五
    请输入学生年龄:40
    学生学号:python003,姓名:王五,年龄:40
    是否继续添加?1.继续 2.返回2
    ==============
    1.添加学生
    2.删除学生
    3.点到
    4.学生平均年龄
    5.退出
    =============
    请选择:3
    张三在不在?
    张三到!
    张三已确认签到
    李四在不在?
    李四到!
    李四已确认签到
    王五在不在?
    无人应答
    王五旷课
    ==============
    1.添加学生
    2.删除学生
    3.点到
    4.学生平均年龄
    5.退出
    =============
    请选择:4
    python1902班学生的平均年龄为:30.0
    ==============
    1.添加学生
    2.删除学生
    3.点到
    4.学生平均年龄
    5.退出
    =============
    请选择:2
    删除学生
    请输入需删除学生学号:python003
    删除学生学号:python003,姓名:王五,年龄:40
    删除成功
    ==============
    1.添加学生
    2.删除学生
    3.点到
    4.学生平均年龄
    5.退出
    =============
    请选择:5
    """
    

    相关文章

      网友评论

          本文标题:May 5th_day14_homework

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