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