美文网首页
15python面对对象相关练习

15python面对对象相关练习

作者: 云水君丶 | 来源:发表于2018-07-31 21:05 被阅读0次

    1.声明一个电脑类:

    属性:品牌、颜色、内存大小
    方法:打游戏、写代码、看视频

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

    class Computer:
        def __init__(self, brand, color, m_size):
            self.brand = brand
            self.color = color
            self.m_size = m_size
        def play_game(self):
            print("你可以用我打游戏!")
        def programming(self):
            print("你能用我写代码!")
        def watch_movie(self):
            print("你能用我看电影!")
        def __str__(self):
            return "品牌:%s,颜色:%s,内存大小:%s"%(self.brand, self.color, self.m_size)
    if __name__ == '__main__':
        computer1 = Computer("神舟", "黑色", "8GB")
        print(computer1)
        print(getattr(computer1, "brand"))
        computer1.play_game()
        computer1.watch_movie()
        computer1.programming()
        delattr(computer1,"color")
        print(computer1)
    
    运行效果:
    品牌:神舟,颜色:黑色,内存大小:8GB
    神舟
    你可以用我打游戏!
    你能用我看电影!
    你能用我写代码!
        print(computer1)    #删掉color属性后,因为属性不存在 所以报错
      File "D:/python课后作业/第十五天对象与类/简单作业.py", line 18, in __str__
        return "品牌:%s,颜色:%s,内存大小:%s"%(self.brand, self.color, self.m_size)
    AttributeError: 'Computer' object has no attribute 'color'
    

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

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

    class Human:
       def __init__(self, name="", age=0, dog=[]):
           self.name = name
           self.age = age
           self.dog = dog
       def walk_the_dog(self):
           print("%s带着%s遛弯"%(self.name, self.dog[0].name))
    class Dogs:
       def __init__(self, name="", age=0, colour=""):
           self.name = name
           self.age = age
           self.colour = colour
       def __bark(self):
           print(self.name+"在叫唤")
    dog1 = Dogs("大黄", 3,"黄色")   # 构建大黄这个对象
    p1 =Human("小明",18 )          #构建小明这个对象
    p1.dog.append(dog1)          #让小明拥有大黄
    p1.walk_the_dog()              #小明带大黄去遛弯
    
    运行效果:
    小明带着大黄遛弯
    

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

    class Class():
        def __init__(self, name="",students=[]):
            self.class_name = name
            self.students = students.copy()  #这里要用.copy 不然创建了另外一个班级,学生会一样
            
        def add_stu(self):
            name = input("请输入学生的姓名:")
            age = input("请输入学生的年龄:")
            stu = Students(name,age)
            self.students.append(stu)
            
        def searh(self):
            print("1.根据学生姓名查找学生")
            print("2.查看所有学生信息")
            n = input("请输入你想要的操作")
            if n == "1":
                name = input("请输入学生的姓名:")
                flag = False
                for stu in self.students:
                    if stu.name == name:
                        print(stu)
                        flag = True
                if not flag:
                    print("该学生不存在")
            if n == "2":
                for stu in self.students:
                    print(stu)
                    
        def remove_s(self):
            name = input("请输入要删除学生的名字:")
            flag = False
            remove_list = []
            for stu in self.students[:]:
                if stu.name == name:
                    remove_list.append(stu)
                    flag = True
            if not flag:
                print("该学生不存在")
            else:
                index = 0
                for stu in remove_list:
                    index += 1
                    print(index, ":", stu)
                while True:
                    try:
                        i = int(input("请输入要删除的学生的序号:"))
                        if i > len(remove_list) or i < 1:
                            print("输入的序号超出范围!")
                        else:
                            break
                    except:
                        print("请输入数字!")
                self.students.remove(remove_list[i-1])
                print("删除成功!")
    
               
    class Students():
        def __init__(self, name="", age=0):
            self.name = name
            self.age = age
            
        def __str__(self):
            return "姓名:%s,年龄:%s"%(self.name, self.age)
    
    
    if __name__ == '__main__':
        class1 = Class("py1805")
        while True:
            print("1.添加学生")
            print("2.查看学生")
            print("3.删除学生")
            print("4.退出")
            n = input("请输入想要的操作:")
            if n == "1":
                class1.add_stu()
            if n == "2":
                class1.searh()
            if n == "3":
                class1.remove_s()
            if n == "4":
                break
    
    运行效果:
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:1
    请输入学生的姓名:aa
    请输入学生的年龄:123
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:1
    请输入学生的姓名:aa
    请输入学生的年龄:22
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:aa
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:1
    请输入学生的姓名:aa
    请输入学生的年龄:1234
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:1
    请输入学生的姓名:ss
    请输入学生的年龄:123
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:2
    1.根据学生姓名查找学生
    2.查看所有学生信息
    请输入你想要的操作2
    姓名:aa,年龄:123
    姓名:aa,年龄:22
    姓名:aa,年龄:1234
    姓名:ss,年龄:123
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:2
    1.根据学生姓名查找学生
    2.查看所有学生信息
    请输入你想要的操作1
    请输入学生的姓名:aa
    姓名:aa,年龄:123
    姓名:aa,年龄:22
    姓名:aa,年龄:1234
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:3
    请输入要删除学生的名字:aa
    1 : 姓名:aa,年龄:123
    2 : 姓名:aa,年龄:22
    3 : 姓名:aa,年龄:1234
    请输入要删除的学生的序号:4
    输入的序号超出范围!
    请输入要删除的学生的序号:0
    输入的序号超出范围!
    请输入要删除的学生的序号:3
    删除成功!
    1.添加学生
    2.查看学生
    3.删除学生
    4.退出
    请输入想要的操作:2
    1.根据学生姓名查找学生
    2.查看所有学生信息
    请输入你想要的操作2
    姓名:aa,年龄:123
    姓名:aa,年龄:22
    姓名:ss,年龄:123
    

    相关文章

      网友评论

          本文标题:15python面对对象相关练习

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