15python面对对象相关练习

2018-07-31  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读