美文网首页
day12 面向对象作业

day12 面向对象作业

作者: HavenYoung | 来源:发表于2018-07-31 20:22 被阅读0次

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

class Computer:
    """电脑类"""

    def __init__(self, brand='asus', color= 'black', memory='4G'):
        self.brand = brand
        self.color = color
        self.memory = memory

    def play_game(self):
        print('van游戏')

    def watch_video(self):
        print('看视频')

    def __str__(self):
        return 'brand:%s color:%s memory:%s' % (self.brand, self.color, self.memory)


if __name__ == '__main__':
    laptop = Computer('asus', 'red_black', '8G')

    setattr(laptop, 'brand', 'acer')
    color = laptop.__getattribute__('color')
    print(color)
    # 添加cpu属性
    laptop.cpu = 'i7_4720HQ'
    print(laptop)
    print('cpu:', laptop.cpu)
    laptop.__delattr__('color')
    # 检测color属性是否被删除
    print(getattr(laptop, 'color', None))

结果:

red_black
brand:acer color:red_black memory:8G
cpu: i7_4720HQ
None

2.声明⼀个⼈的类和狗的类:
狗的属性:名字、颜⾊、年龄 狗的⽅法:叫唤
⼈的属性:名字、年龄、狗 ⼈的⽅法:遛狗
a.创建⼈的对象⼩明,让他拥有⼀条狗⼤⻩,然后让⼩明去遛⼤⻩

class Human:
    """人的类"""

    def __init__(self, name='', age=0, dog=None):
        self.name = name
        self.age = age
        self.dog = dog

    def walk_a_dog(self, dog):
        print('%s正在遛%s' % (self.name, dog.name))


class Dog:
    """狗的类"""

    def __init__(self, name='', color='yellow', age=0):
        self.name = name
        self.color = color
        self.age = age


    def barking(self):
        print('%s:啊汪!' % self.name)


if __name__ == '__main__':
    dog = Dog('tom', 'blue', 2)
    man = Human('jerry', 18, dog)

    man.walk_a_dog(dog)
    dog.barking()

结果:

jerry正在遛tom
tom:啊汪!

3.声明⼀个矩形类:
属性:⻓、宽 ⽅法:计算周⻓和⾯积
a.创建不同的矩形,并且打印其周⻓和⾯积

import random


class Rect:
    """矩形的类"""

    def __init__(self, length=0, width=0):
        self.length = length
        self.width = width

    def perimeter(self):
        perimeter = (self.width + self.length) * 2
        print('周长是:%d' % perimeter)

    def slice(self):
        slice = self.width * self.length
        print('面积是:%d' % slice)


if __name__ == '__main__':
    length = random.randint(1, 10)
    width = random.randint(1, 10)
    rect = Rect(length, width)
    print('长:', length, '宽:', width)

    rect.perimeter()

    rect.slice()

结果:

长: 9 宽: 10
周长是:38
面积是:90

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

class Class:
    """班级的类"""

    def __init__(self, name='', students=[]):
        self.name = name
        self.students = students

    def student_check(self, name):
        print('老师:%s' % name)
        for index in range(len(self.students)):
            if name == self.students[index].name:
                result = self.students[index].say_yes(name)
                if result:
                    print('%s到了' % name)
                    return True
        else:
            print('······')
            print('%s旷课!' % name)
            return False

    def add_student(self):
        name = input('name:')
        age = int(input('age:'))
        id = input('id:')
        # 根据输入的信息创建学生对象
        stu = Student(name, age, id)
        # 添加学生
        self.students.append(stu)

    def del_student(self, name):
        for index in range(len(self.students)):
            if name == self.students[index].name:
                del self.students[index]
                print('删除成功')
                return
        else:
            print('查无此人')
            return


class Student:
    """学生的类"""

    def __init__(self, name='', age=0, id=''):
        self.name = name
        self.age = age
        self.id = id

    def say_yes(self, name):
        if name == self.name:
            print('%s:到' % name)
            return True
        else:
            return False

    def __str__(self):
        return 'name:%s id:%s age:%d' % (self.name, self.id, self.age)


if __name__ == '__main__':
    student = Student('张三', 20, '9526')
    cls1 = Class('py1085')
    cls1.add_student()
    print(cls1.students[0])

    cls1.student_check('张三')
    cls1.student_check('李四')

结果:

name:李四
age:20
id:9527
name:李四 id:9527 age:20
老师:张三
······
张三旷课!
老师:李四
李四:到
李四到了

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

class Arithmetic:
    """数学运算的类"""

   @staticmethod
    def sum(num1, num2):
        return num1 + num2

    @staticmethod
    def subtraction(num1, num2):
        return num1 - num2

    @staticmethod
    def multiplication(num1, num2):
        return num1 * num2

    @staticmethod
    def division(num1, num2):
        return num1/num2


if __name__ == '__main__':
    func = Arithmetic()
    print(func.sum(12, 20))
    print(func.subtraction(20, 12))
    print(func.multiplication(12, 20))
    print(func.division(12, 20))

结果:

32
8
240
0.6

6.1.写⼀个班级类,属性:班级名、学⽣;功能:添加学⽣、删除学⽣、根据姓名查看学⽣信息,展示班级的所有学⽣信息

class Class:
    """班级类"""

    def __init__(self, name=''):
        self.class_name = name
        self.students = []

    def add_student(self):
        while True:
            name = input('name(input 0 to back):')
            if name == '0':
                return
            sex = input('sex:')
            age = int(input('age:'))
            # 根据输入的信息创建学生对象
            stu = Student(name, sex, age)
            # 添加学生
            self.students.append(stu)

    def find_student(self, name):
        for index in range(len(self.students)):
            if name == self.students[index].name:
                return self.students[index]
        else:
            print('查无此人')
            return

    def del_student(self, name):
        for index in range(len(self.students)):
            if name == self.students[index].name:
                del self.students[index]
                print('删除成功')
                return
        else:
            print('查无此人')
            return


class Student:
    """学生类"""

    def __init__(self, name='', sex='', age=0):
        self.name = name
        self.sex = sex
        self.age = age

    def __str__(self):
        return 'name:%s sex:%s age:%d' % (self.name, self.sex, self.age)


if __name__ == '__main__':
    cls1 = Class('py1805')

    while True:
        print('''
        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        ''')

        cmd = input('>>>>>')
        if not '0' <= cmd <= '4':
            print('输入有误')
            continue
        if cmd == '1':
            cls1.add_student()

        if cmd == '2':
            while True:
                name = input('find student by name(input 0 to back):')
                if name == '0':
                    break
                stu = cls1.find_student(name)
                print(stu)

        if cmd == '3':
            while True:
                name = input('delete student by name(input 0 to back):')
                if name == '0':
                    break
                stu = cls1.del_student(name)

        if cmd == '4':
            for index in range(len(cls1.students)):
                print(cls1.students[index])

        if cmd == '0':
            break

结果:

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>1
name(input 0 to back):张三
sex:男
age:20
name(input 0 to back):李四
sex:女
age:21
name(input 0 to back):王五
sex:男
age:23
name(input 0 to back):0

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>2
find student by name(input 0 to back):李四
name:李四 sex:女 age:21
find student by name(input 0 to back):0

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>
输入有误

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>4
name:张三 sex:男 age:20
name:李四 sex:女 age:21
name:王五 sex:男 age:23

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>3
delete student by name(input 0 to back):李四
删除成功
delete student by name(input 0 to back):0

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>4
name:张三 sex:男 age:20
name:王五 sex:男 age:23

      ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>0

Process finished with exit code 0

相关文章

  • day12 面向对象作业

    1.声明⼀个电脑类:属性:品牌、颜⾊、内存⼤⼩⽅法:打游戏、写代码、看视频a.创建电脑类的对象,然后通过对象点的⽅...

  • day12面向对象

    一、迭代器和生成器 生成器: a.可以看成是一个可以存储多个数据的容器。需要里面数据的时候就生成一个里面的数据只能...

  • Python-day-12作业

    面向对象作业1:

  • 面向对象作业

    1设计一个倒计时器

  • 面向对象作业

    1.声明一个电脑类:属性:品牌、颜色、内存大小方法:打游戏、写代码、看视频 a.创建电脑类的对象,然后通过对象点的...

  • Day12 面向对象基础

    01.迭代器和生成器 02.认识面向对象 03.类的声明 04.对象的属性 05.对象属性的增删改查 06.slo...

  • day12面向对象基础

    01-迭代器与生成器 生成器:a.可以看作是一个可以存储多个数据的容器.需要里面的数据的时候,就生成一个.里面的数...

  • day12 面向对象基础

    01 迭代器和生成器 生成器:a.(1)可以看成一个可以西存储多个数据的容器。(2)需要里面的数据的时候就生成一个...

  • 面向对象3作业

    0.定义⼀一个学⽣生类。有属性:姓名、年年龄、成绩(语⽂文,数学,英语)[每课成绩的类型为整数]⽅方法:a. 获取...

  • day12面向对象基础-1

    一、迭代器和生成器生成器:a.可以看成是一个可以存储多个数据的容器。需要里面的数据的时候就生成一个,里面的数据只能...

网友评论

      本文标题:day12 面向对象作业

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