06 2018 档案

摘要:补充内置函数 isinstance(obj,Foo) # 判断obj是不是foo的实例 issubclass() # 判断一个类是不是另一个类的子类 反射 什么是反射? 通过字符串来操作类或者对象的属性 怎么用? hasattr(adj,’xxx’) 判断adj有没有’xxx’属性 getattr( 阅读全文
posted @ 2018-06-29 18:55 luck_L 阅读(206) 评论(0) 推荐(0)
摘要:封装 1.什么是封装: 封:属性对外隐藏,但对内开放 装:申请一个名称空间,往里装入一系列名字/属性 2.为什么要封装: 封装数据属性:不让外部使用者直接使用数据,需要类内部开辟一个接口,让外部通过接口使用数据,好处在于可以在接口中定义各种规则 封装函数属性:定义函数就是为了给类外部使用者的,隐藏函 阅读全文
posted @ 2018-06-28 14:42 luck_L 阅读(259) 评论(0) 推荐(0)
摘要:组合 1.什么是组合 组合就是一个类的对象具备一个指向另外一个类的对象的属性 2.为何用组合 组合可以减少代码冗余 3.如何使用 菱形继承问题 非菱形继承都是深度优先 1.什么是菱形继承问题? 一个子类继承多个父类,最终继承同一个类 2.python2中分经典类和新式类 经典类按深度优先查找属性 新 阅读全文
posted @ 2018-06-27 14:04 luck_L 阅读(205) 评论(0) 推荐(0)
摘要:类与对象 对象的本质也就是一个名称空间而已,用于存放自己独有的属性,而类中存放的是对象共有的属性。 __init__会在调用类时自动触发 调用类时发生两件事: 1.创建一个空对象stu1 2.自动触发__init__功能,将stu1以及括号内的参数一同传入 属性查找 先从对象自己的名称空间找,没有则 阅读全文
posted @ 2018-06-26 15:02 luck_L 阅读(308) 评论(0) 推荐(0)
摘要:hash 什么是hash? hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 为何用hash? hash值有三大特性: 1.只要传入的内容一样,得到的hash值必然一样 2.只要使用的hash算法固定,无论传入的内容多大,得到的hash值的长度是固定的 3.不可以用hash值逆推 阅读全文
posted @ 2018-06-25 14:40 luck_L 阅读(242) 评论(0) 推荐(0)
摘要:re 正则表达式 1.什么是正则? 正则就是用一系列具有特殊含义的字符组成的规则,该规则用来描述具有某一特征的字符串。 正则就是用来在一个大的字符串匹配出符合规则的子字符串 2.为什么用正则? 正则可以用来检验用户注册的合法性,可以爬虫等等 3.如何使用正则? \w 匹配字母、数字、下划线 \W 匹 阅读全文
posted @ 2018-06-21 20:24 luck_L 阅读(398) 评论(0) 推荐(0)
摘要:序列化与反序列化 json pickle 1.什么是序列化与反序列化? 序列化就是将内存中的数据结构转成一种中间格式储存到硬盘或者基于网络传输 反序列化是网络,硬盘将被序列化的对象重新读到内存 2.为什么要序列化? ①保存程序的运行状态 ②数据的跨平台交互 3.怎么用? json 存的是str类型 阅读全文
posted @ 2018-06-20 15:07 luck_L 阅读(244) 评论(0) 推荐(0)
摘要:包 1.什么是包? 包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹 2.为什么要有包? 提高程序的结构性和可维护性 3.如何使用包? 导入包就是在导包下的__init__.py 方法:import…… from …… import…… 主要的问题: 1.包内所有的文件都是 阅读全文
posted @ 2018-06-19 16:33 luck_L 阅读(223) 评论(0) 推荐(0)
摘要:面向过程编程 面向过程的核心是过程,指的是解决问题的步骤,即先干什么再干什么,就好像设计一条流水线。 优点:复杂的问题流程化,进而简单化 缺点:可扩展性差,修改流水线的任意一个阶段,都会牵一发而动全身 应用:扩展性要求不高的场景,典型案例如框架,linux内核,git 模块 1.什么是模块? 模块就 阅读全文
posted @ 2018-06-15 21:07 luck_L 阅读(238) 评论(0) 推荐(0)
摘要:递归函数: 什么是递归函数? 函数递归调用:在调用一个函数的过程中,又直接或间接地调用了该函数本身。 递归必须要有两个明确的阶段: ①递推:一层一层递归调用下去,强调:每进入下一层问题规模减少 ②回溯:递归必须要有一个明确的结束条件,在满足该条件时,结束递推,开始一层一层回溯 递归的精髓在于通过不断 阅读全文
posted @ 2018-06-14 19:16 luck_L 阅读(241) 评论(0) 推荐(0)
摘要:生成器 1.什么是生成器? 在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称为生成器。 生成器的本质就是迭代器。 2.为什么要用生成器? 生成器是一种自定义迭代器的方式 3.如何使用生成器? 和迭代器一样,用next(),for循环,到函数中的yield即会停止 阅读全文
posted @ 2018-06-13 14:30 luck_L 阅读(168) 评论(0) 推荐(0)
摘要:带参数的装饰器:就是在原装饰器外再包一层函数 迭代器:迭代取值的工具 1.是迭代器? 迭代是一个重复的过程,每一次重复都是基于上一个结果而来的。 注:单纯的重复并不是迭代 2.为什么要有迭代器? 基于索引的迭代取值方式只适合用于列表、元组、字符串类型,而对于没有索引的字典、集合、文件,则不再适用。 阅读全文
posted @ 2018-06-12 14:55 luck_L 阅读(214) 评论(0) 推荐(0)
摘要:闭包函数: 什么是闭包函数: 闭指的是定义在一个函数内部 包指的是该函数包含对外部作用域(非全局作用域)名字的引用 装饰器 1.什么是装饰器 就目前来看:装饰器就是定义一个函数,只不过该函数的功能是用来为其它函数添加额外的功能的 其实:装饰器本身其实可以是任意可调用的对象, 被装饰的对象也可以是任意 阅读全文
posted @ 2018-06-11 19:12 luck_L 阅读(175) 评论(0) 推荐(0)
摘要:from numpy import * import matplotlib.pyplot as plt def loadDataSet(): data_mat = [] label_mat = [] fr = open('testSet.txt') for line in fr.readlines(): line_arr = line.stri... 阅读全文
posted @ 2018-06-11 18:44 luck_L 阅读(217) 评论(0) 推荐(0)
摘要:from numpy import * import re import operator import feedparser def loadDataSet(): posting_ist = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], ['maybe', 'not',... 阅读全文
posted @ 2018-06-11 18:43 luck_L 阅读(229) 评论(0) 推荐(0)
摘要:绘制决策树 阅读全文
posted @ 2018-06-07 21:19 luck_L 阅读(296) 评论(0) 推荐(0)
摘要:函数对象: 函数是第一类对象的含义是函数可以被当作数据处理 函数可用于: def func(): print(‘func’) 1.引用 f = func 把内存地址赋值给f 2.当作参数传给一个函数 def foo(func) 3.当作函数的返回值 return func 4.可以当作容器类型的元素 阅读全文
posted @ 2018-06-07 13:43 luck_L 阅读(314) 评论(0) 推荐(0)
摘要:函数的返回值 1.什么是返回值: 返回值是一个函数的处理结果 2.为什么要有返回值 如果需要在程序中拿到函数的处理结果,做进一步的处理,则需要函数必须有返回值 3.函数返回值的应用: 函数的返回值用return定义 格式: return x 注意:1.return是一个函数结束的标志,可有多个ret 阅读全文
posted @ 2018-06-06 14:48 luck_L 阅读(954) 评论(0) 推荐(0)
摘要:文件操作 +模式: r+t w+t a+t r+b w+b a+b 可读可写,其他功能与人,r,w,a相同 f.seek(offset,whence) 文件指针移动 offest的单位为bytes whence是参照物 f.seek(3,0) whence默认值为0 0:文件开头开始 1:当前指针位 阅读全文
posted @ 2018-06-05 14:37 luck_L 阅读(493) 评论(0) 推荐(0)
摘要:文件处理 1.什么是文件处理 ①.文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位 ②.文件操作的核心就是读写 ③.我们只需要对文件进行读写操作,就是对操作系统发起请求,然后由操作系统或应用程序对文件的读写操作转换成具体的硬盘指令。 2.为什么要有文件? 因为内存无法永久保存数据,但凡我们 阅读全文
posted @ 2018-06-04 14:37 luck_L 阅读(225) 评论(0) 推荐(0)
摘要:from numpy import * import operator def create_data_set(): # 训练集与标签 group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]]) labels = ['A', 'A', 'B', 'B'] return group, labels ... 阅读全文
posted @ 2018-06-03 14:57 luck_L 阅读(962) 评论(0) 推荐(0)
摘要:六、集合类型 1.用途:关系运算 2.定义方式:s = {1,2,’a’} {}内用,分隔开多个元素,每个元素都必须是不可变(即可hash)类型 强调:2.1集合内的元素时无序的 2.2集合内的元素不能重复 2.3集合内元素必须不可变 集合的目的是将值放在一起,无需纠结单个值 单纯用集合去重,需要注 阅读全文
posted @ 2018-06-01 17:28 luck_L 阅读(235) 评论(0) 推荐(0)