Python OOP - practice_1
【摘要】 定义一个学生类,有下面的属性
姓名年龄成绩(语文,数学,英语)每课成绩类型为整数类方法 获取学生的姓名:get_name() 返回类型:str获取学生的年纪:get_age() 返回类型:int返回3门科目中最高的分数,get_course() 返回类型:int
class Student(object): def __init__(self, name, age...
定义一个学生类,有下面的属性
- 姓名
- 年龄
- 成绩(语文,数学,英语)每课成绩类型为整数
- 类方法
- 获取学生的姓名:get_name() 返回类型:str
- 获取学生的年纪:get_age() 返回类型:int
- 返回3门科目中最高的分数,get_course() 返回类型:int
class Student(object): def __init__(self, name, age, scores): self.name = name self.age = age self.scores = scores def get_name(self): return self.name def get_age(self): return self.age def get_course(self): return max(self.scores) zz = Student("aa", 18, [80, 100, 90])
print(zz.get_name())
print(zz.get_age())
print(zz.get_course())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
aa
18
100
- 1
- 2
- 3
定义一个字典类:DictClass,完成如下功能
- 删除某个key del_dict(key)
- 判断某个键是否在字典里,如果在,返回键对应的值,不在,则返回’not found’ get_dict()
- 返回键组成的列表 返回类型:list get_key()
- 合并字典,并且返回合并后字典的values组成的列表,返回类型 list updata_dict()
class DictClass(object): def __init__(self, dict): self.dict = dict def del_dict(self, key): # 判断key是否在字典里 if key not in self.dict.keys(): return "key不在字典里" else: self.dict.pop(key) return "删除成功" def get_dict(self, key): if key not in self.dict.keys(): return "not found" else: return self.dict[key] def get_key(self): return self.dict.keys() def updata_dict(self, dict2): self.dict = dict(self.dict, **dict2) return self.dict.values() d = DictClass({"a":1, "b":2})
print(d.get_key())
print(d.updata_dict({"c":3}))
print(d.del_dict("a"))
print(d.get_dict("b"))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
dict_keys(['a', 'b'])
dict_values([1, 2, 3])
删除成功
2
- 1
- 2
- 3
- 4
定义一个列表的操作类 ListInfo
- 列表元素添加:add_key() 添加的必须数字或者字符串
- 列表元素取值:get_key()
- 列表合并:updata_list(list)
- 删除并且返回最后一个元素:del_key()
class ListInfo(object): def __init__(self, list_val): self.list = list_val def add_key(self, key_name): # 添加的key必须是数字或者字符串 if isinstance(key_name, (str, int)): self.list.append(key_name) print(self.list) return "OK" else: return "我要字符串或者数字" def get_key(self, index): # 判断传入的索引是否超出了列表 if index >= 0 and index < len(self.list): return self.list[index] return "你输入的太多了!" def updata_list(self, new_list): self.list.extend(new_list) return self.list def del_key(self): # 首先要判断我们的列表里面是否还有元素 if len(self.list) >= 0: return self.list.pop(-1) else: return "列表是空的" list_info = ListInfo([1, 2, 3, 4, 5])
print(list_info.add_key([1,2]))
print(list_info.get_key(999))
print(list_info.get_key(3))
print(list_info.updata_list([8, 9, 10]))
print(list_info.del_key())
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
我要字符串或者数字
你输入的太多了!
4
[1, 2, 3, 4, 5, 8, 9, 10]
10
- 1
- 2
- 3
- 4
- 5
定义一个集合的操作类
- 集合元素添加:add_setinfo()
- 集合的交集:get_intersection()
- 集合的并集:get_union
- 集合的差集:del_difference()
class SetInfo(object): def __init__(self, my_set): self.sett = my_set def add_setinfo(self, keyname): self.sett.add(keyname) return self.sett def get_intersection(self, unioninfo): if isinstance(unioninfo, set): return self.sett & unioninfo else: return "你传入的不是set" def get_union(self, unioninfo): if isinstance(unioninfo, set): return self.sett | unioninfo return "你传入的不是set" def del_difference(self, unioninfo): if isinstance(unioninfo, set): return self.sett - unioninfo return "你传入的不是set"
A = set([1, 2, 3, 4, 5]) B = set([5, 6, 3, 8])
my_set = SetInfo(A)
print(my_set.add_setinfo(6))
print(my_set.get_intersection(B))
print(my_set.get_union(B))
print(my_set.del_difference(B))
print(my_set.get_union("123"))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
{1, 2, 3, 4, 5, 6}
{3, 5, 6}
{1, 2, 3, 4, 5, 6, 8}
{1, 2, 4}
你传入的不是set
- 1
- 2
- 3
- 4
- 5
文章来源: ruochen.blog.csdn.net,作者:若尘,版权归原作者所有,如需转载,请联系作者。
原文链接:ruochen.blog.csdn.net/article/details/90445621
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)