"""
一、定义一个学生Student类。有下面的类属性:
1 姓名 name
2 年龄 age
3 成绩 score(语文,数学,英语) [每课成绩的类型为整数]

类方法:
1 获取学生的姓名:get_name() 返回类型:str
2 获取学生的年龄:get_age() 返回类型:int
3 返回3门科目中最高的分数。get_course() 返回类型:int

写好类以后,可以定义2个同学测试下:
zm = Student('zhangming',20,[69,88,100])
返回结果:
zhangming
20
100
"""

class Student():
# 构造函数
# 对当前对象的实例的初始化
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score # isinstance函数判断一个对象是否是一个已知的类型,类似type
def get_name(self):
if isinstance(self.name, str):
return self.name def get_age(self):
if isinstance(self.age, int):
return self.age def get_course(self):
a = max(self.score)
if isinstance(a, int):
return a zm = Student('zhangming', 20, [69, 88, 100])
print(zm.get_name())
print(zm.get_age())
print(zm.get_course())

"""
二、定义一个字典类:dictclass。完成下面的功能:

dict = dictclass({你需要操作的字典对象})

1 删除某个key

del_dict(key)

2 判断某个键是否在字典里,如果在返回键对应的值,不存在则返回"not found"

get_dict(key)

3 返回键组成的列表:返回类型;(list)

get_key()

4 合并字典,并且返回合并后字典的values组成的列表。返回类型:(list)

update_dict({要合并的字典})
"""

class Dictclass():

    # 构造函数
# 对当前对象的实例的初始化
def __init__(self, class1):
self.classs = class1 def del_dict(self, key):
if key in self.classs.keys():
del self.classs[key]
return self.classs
return "不存在这个值,无需删除" def get_dict(self, key):
if key in self.classs.keys():
return self.classs[key]
return "not found" def get_key(self):
return list(self.classs.keys()) def update_dict(self, dict1):
# 方法1
# self.classs.update(dict1)
# 方法2,对于重复的key,B会覆盖A
a = dict(self.classs, **dict1)
return a a = Dictclass({"姓名": "张三", "年龄": "", "性别": "男"})
print(a.del_dict("年龄"))
print(a.get_dict("姓名"))
print(a.get_key())
print(a.update_dict({"年薪": 0}))

"""
三、定义一个列表的操作类:Listinfo

包括的方法:

1 列表元素添加: add_key(keyname) [keyname:字符串或者整数类型]
2 列表元素取值:get_key(num) [num:整数类型]
3 列表合并:update_list(list) [list:列表类型]
4 删除并且返回最后一个元素:del_key()

a = Listinfo([44,222,111,333,454,'sss','333'])
"""

class Listinfo():

    def __init__(self, my_list):
self.listt = my_list def add_key(self, keyname):
if isinstance(keyname, (str, int)):
self.listt.append(keyname)
return self.listt
return "error" def get_key(self, num):
if num >= 0 and num < len(self.listt):
a = self.listt[num]
return a
return "超出取值范围" def update_list(self, list1):
if isinstance(list1, list):
self.listt.extend(list1)
return self.listt
return "类型错误" def del_key(self):
a = self.listt.pop(-1)
return a a = Listinfo([44, 222, 111, 333, 454, 'sss', ''])
print(a.add_key(1))
print(a.get_key(1))
print(a.update_list([1, 2, 3]))
print(a.del_key())

"""
定义一个集合的操作类:Setinfo

包括的方法:

1 集合元素添加: add_setinfo(keyname) [keyname:字符串或者整数类型]
2 集合的交集:get_intersection(unioninfo) [unioninfo :集合类型]
3 集合的并集: get_union(unioninfo)[unioninfo :集合类型]
4 集合的差集:del_difference(unioninfo) [unioninfo :集合类型]
set_info = Setinfo(你要操作的集合)
"""

class Setinfo():

    def __init__(self, my_set):
self.sett = my_set def add_setinfo(self, keyname):
if isinstance(keyname, (str, int)):
self.sett.add(keyname)
return self.sett def get_intersection(self, unioninfo):
if isinstance(unioninfo, set):
a = self.sett & (unioninfo)
return a def get_union(self, unioninfo):
if isinstance(unioninfo, set):
a = self.sett | (unioninfo)
return a def del_difference(self, unioninfo):
if isinstance(unioninfo, set):
a = self.sett - (unioninfo)
return a a = Setinfo({1, "a", 2, "b", 3, "c"})
print(a.add_setinfo(4))
print(a.get_intersection({1, 2, "a"}))
print(a.get_union({2, 3, 4, "c", "d"}))
print(a.del_difference({1, 2, 3, 4}))

原文:https://blog.csdn.net/bullpride/article/details/52022701

python3 class类 练习题的更多相关文章

  1. paip.python3 的类使用跟python2 的不同之处

    paip.python3 的类使用跟python2 的不同之处 #------python3的写法而且使用.. #class syllable(BaseClassA, BaseClassB): cla ...

  2. python3的类

    python3的类: python是一门面向对象的编程语言,学习python下的类,,能帮助自己形成一个基本的面向对象的概念.关于类和实例的理解,一个易懂的栗子就是动物类,我们把动物看做一个类,而狗啊 ...

  3. python3 统计类的实例个数

    python3 统计类的实例个数 有时候我们可能想统计下类所创建的实例个数,代码如下: class Dog: # 定义一个狗类 count = 0 # 用于统计类所创建的实例个数 def __init ...

  4. python3的基础练习题

    1. 执行 Python 脚本的两种方式 1)/usr/bin/python3 xx.py 2)python3 xx.py #注xx.py需要在内容里面调用由什么解释器执行 2. 简述位.字节的关系 ...

  5. Java学习(异常类练习题)

     练习题: 1.计算圆的面积,半径不能为零和负数 package com.oracle.Demo01; public class Demo02 { // 写一个计算圆的面积的方法,传一个半径,返回面积 ...

  6. python3的一些练习题

    下面是最近写的一些python3版本的一些练习题: 1.4+44+444+4444+.....+=? root@wadeson:~/study_for_python/homework# cat aa. ...

  7. python3.x 类和对象

    python同样支持类和对象.在python3.x中没有了经典类,只有新式类,默认创建的就是新式类.具体的新式类与经典类的不同在python3.x中已经没有意义了. 类的定义和实例化 python定义 ...

  8. PYTHON3中 类的继承

    继承 1:什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,也就是说在python中支持一个儿子继承多个爹. 新建的类成为子类或者派生类. 父类又可以成为基类或者 ...

  9. Python3 面向对象-类的继承与派生

    1.什么是继承? 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类可称为基类或超类,新建的类称为派生类和或子类. 子类会遗传父类的属性,从而解决代码重用问题. ...

随机推荐

  1. ASP.NET错误处理的方式(一)

    对Web应用程序来说,发生不可预知的错误和异常在所难免,我们必须为Web程序提供错误处理机制.当错误发生时,我们必须做好两件事情:一是将错误信息记录日志,发邮件通知网站维护人员,方便技术人员对错误进行 ...

  2. CentOS使用PXE网络启动自动安装操作系统

    PXE工作原理简介 PXE (Preboot Excution Environment) 预启动执行环境 工作环境介绍: 要实现PXE自动网络安装CentOS至少需要两台主机 1)PXE服务器PXE ...

  3. Jmeter测试普通java类说明

    概述 Apache JMeter是Apache组织开发的基于Java的压力测试工具.本文档主要描述用Jmeter工具对基于Dubbo.Zookeeper框架的Cassandra接口.区块链接口进行压力 ...

  4. 把bootstrap4 dropdown 的导航下拉菜单触发方式改为鼠标浮动触发

    方法1: 原文: https://zzll.org/article/bootstrap4-xialacaidan 很简单,css中加入如下代码 .dropdown:hover>.dropdown ...

  5. 在ubuntu上使用QQ的经历

    pidgin-lwqq: 项目首页:https://github.com/xiehuc/pidgin-lwqq sudo add-apt-repository ppa:lainme/pidgin-lw ...

  6. js判断鼠标滚轴方向(向上或向下)

    var num=1; $(document).on("mousewheel DOMMouseScroll", function (e) { var delta = (e.origi ...

  7. PostgreSQL 连接的问题

    一.在postgresql的安装文件夹\8.3\data\pg_hba.conf里面(或者在开始菜单程序下面的postgresql的配置文档)找到“# IPv4 local connections:” ...

  8. 带参sql$和#的区别(注解)

    主要区别就是#带双引号,$不带 例如:#{id}代表'id',${id}代表id 下面是Mybatis @Select注解方式的sql @Select("select id,name fro ...

  9. 简单理解Socket 重要

    http://www.cnblogs.com/dolphinX/p/3460545.html 题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器 ...

  10. C/C++——存储

    关于各内存空间: 栈(stack):变量,数组.栈的大小是2M(也有的是1M),反正不大,一般递归写错了,没有出口,都会报错stack overflow. 全局区(静态区):全局变量.数组,静态变量. ...