随笔分类 -  python基础

摘要:一、 字典的实现原理 python中的字典底层依靠哈希表(hash table)实现, 使用开放寻址法解决冲突, 哈希表是key value类型的数据结构, 可以理解为一个键值需要按照一定规则存放的数组, 而哈希函数就是这个规则 字典本质上是一个散列表(总有空白元素的数组, python至少保证1/ 阅读全文
posted @ 2019-05-27 14:22 lokichoggio 阅读(4302) 评论(0) 推荐(1)
摘要:总结: 1. 闭包: 闭包的好处就是让一个变量常驻内存, 供后续的程序使用 2. 查看一个对象是可迭代对象的方法 (1) 使用dir()函数. 如果结果中有 __iter__ 就是可迭代对象 print(dir(obj)) (2) 通过isinstance()函数, 返回True就是可迭代对象 fr 阅读全文
posted @ 2019-01-07 19:33 lokichoggio 阅读(233) 评论(0) 推荐(0)
摘要:1. __file__ 和 __name__ __file__ 想要使得在任何环境下代码都可执行的话,只需手动将项目的路径导入环境变量path中即可,这就需要用到__file__了 变量__file__表示文件本身,输出的是一个绝对路径(但在pycharm中会自动输出绝对路径),所以需要将其转换成绝 阅读全文
posted @ 2018-12-31 23:01 lokichoggio 阅读(361) 评论(0) 推荐(0)
摘要:一. 模块 模块就是一个包含了python定义和声明的文件, 文件名就是模块的名字加上.py后缀, 也就是我们目前写的所有py文件都可以看成是一个模块, 但是我们import加载的模块一共分为四个通用类别: 1. 使用python编写的py文件 2. 已被编译为共享库或者DLL或C或者C++的扩展 阅读全文
posted @ 2018-12-29 19:54 lokichoggio 阅读(178) 评论(0) 推荐(0)
摘要:一. 正则表达式 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式由普通字符和元字符组成, 普通字符包含大小写字母, 数字. 在 阅读全文
posted @ 2018-12-29 15:25 lokichoggio 阅读(210) 评论(0) 推荐(0)
摘要:一. os 模块 所有关于操作系统的内容都在os模块 os.makedirs("d:/1PY/新建文件夹/宝宝") # 可生成多层递归目录 os.removedirs("d:/1PY/新建文件夹/宝宝") # 若目录为空, 则删除, 并递归到上一级目录, 如若也为空, 则删除, 依次类推 os.mk 阅读全文
posted @ 2018-12-27 22:57 lokichoggio 阅读(137) 评论(0) 推荐(0)
摘要:一. 模块 模块: 是把装有特定功能的代码进行归类的结果, 从代码编写的单位来看我们的程序, 从小到大的顺序: 一条代码 < 语句块 < 代码块(函数, 类) < 模块. 我们目前写的所有py文件都是模块 引入模块的方式: 1. import 模块 2. from 模块 import 方法 二. c 阅读全文
posted @ 2018-12-26 23:16 lokichoggio 阅读(197) 评论(0) 推荐(0)
摘要:一. python多继承 类与类型: http://www.cnblogs.com/blackmatrix/p/5594109.html 子类继承了多个父类, 当父类出现了重名方法时, 这时就涉及到查找父类方法的问题, 即MRO(method resolution order)问题 python中有 阅读全文
posted @ 2018-12-24 17:25 lokichoggio 阅读(156) 评论(0) 推荐(0)
摘要:一. 类的约束 约束程序的结构, 在分配任务之前就应该把功能定义好, 然后分别交给底下的程序员来完成相应的功能 在python中有两种办法来解决这样的问题 1. 提取父类, 然后在父类中定义好方法, 在方法中抛出一个异常, 这样所有继承父类的子类都必须重写这个方法, 否则访问的时候就会报错 clas 阅读全文
posted @ 2018-12-21 21:59 lokichoggio 阅读(190) 评论(0) 推荐(0)
摘要:一. isinstance, type, issubtance 1. isinstance(obj, cls) 判断obj是否是cls类的对象 2. type(obj) 返回obj的精准的数据类型 3. issubclass(sub, super) 判断sub类是否是super类的派生类 二. 区分 阅读全文
posted @ 2018-12-20 22:40 lokichoggio 阅读(146) 评论(0) 推荐(0)
摘要:类与类之间的关系 依赖关系. 关联关系. 组合关系. 聚合关系. 继承关系. 实现关系 一. 依赖关系 执行某个动作的时候, 需要借助某个东西, 但这个东西不是绝对的, 此时关系是最轻的, 随时可以更换另外一种东西执行动作, 通过参数的传递把另外一个类的对象传递进来 二. 关联关系. 组合关系. 聚 阅读全文
posted @ 2018-12-19 22:28 lokichoggio 阅读(174) 评论(0) 推荐(0)
摘要:一. 类的成员 在类中能写的所有内容都是类的成员 二. 类的成员-变量 1. 实例变量(字段) 实例化对象的变量, 由对象访问 2. 类变量(静态变量) 变量属于类, 多个对象共享的, 最好用类名访问(可以修改), 但对象也可以访问(不可以修改) 三. 类的成员-方法 1. 成员方法(实例方法) 定 阅读全文
posted @ 2018-12-18 22:24 lokichoggio 阅读(288) 评论(0) 推荐(0)
摘要:一. 面向对象和面向过程 1. 面向过程: 一切以实物的流程为中心,核心是"过程二字", 过程是指解决问题的步骤 优点: 负责的问题流程化, 编写相对简单 缺点: 可扩展性差 2. 面向对象: 一切以对象为中心 具有相同属性和动作的结合体叫对象, 面向对象思维, 要自己建立对象, 自己建立场景 优点 阅读全文
posted @ 2018-12-17 21:58 lokichoggio 阅读(145) 评论(0) 推荐(0)
摘要:一. 装饰器 开闭原则: 软件设计的原则之一, 又称为开放封闭原则. 开放: 对功能扩展开放 封闭: 对修改代码封闭 装饰器: 在目标函数前或后插入一段新的代码, 不改变目标函数的代码 可以给目标函数传参, 拿到目标函数的返回值 python里面的动态代理 在不破坏目标函数和目标函数调用的基础上给函 阅读全文
posted @ 2018-12-14 20:05 lokichoggio 阅读(157) 评论(0) 推荐(0)
摘要:一. 递归 在函数中调用函数本身, 就是递归 prthon中递归的最大深度是998 def func(n): print(n) n += 1 func(n) func(1) 递归的应用:我们可以使用递归来遍历各种树形结构, 比如我们的文件夹系统, 可以使用递归来遍历该文件夹中的所有文件 import 阅读全文
posted @ 2018-12-14 08:27 lokichoggio 阅读(216) 评论(0) 推荐(0)
摘要:一. 内置函数:68个 "点击查看内置函数思维导图" 1. 作用域相关:(2个) locals() 返回当前作用域中的名字 globals() 返回全局作用域中的名字 2. 迭代器相关:(3个) range() 生成数据 next() 迭代器向下执行一次, 内部实际使用了__next__()方法, 阅读全文
posted @ 2018-12-12 19:53 lokichoggio 阅读(185) 评论(0) 推荐(0)
摘要:一. 生成器 genetator 一种一边循环一边计算的机制 三种方式获得生成器: (1)通过生成器函数 (2)通过各种推导式来实现生成器 (3)通过数据的转换也可以获取生成器 函数中存在yield,这个函数就是生成器函数,再执行这个函数的时候就不再是函数的执行了,而是获得这个生成器,yield是分 阅读全文
posted @ 2018-12-11 17:10 lokichoggio 阅读(145) 评论(0) 推荐(0)
摘要:一. 函数名的运用 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量 1. 函数名的内存地址 2. 函数名可以赋值给其他变量 3. 函数名可以当做容器类的元素 列表里面可以装函数名 4. 函数名可以当做函数的参数 5. 函数名可以作为函数的返回值 二. 闭包 闭包就是内层函数对外 阅读全文
posted @ 2018-12-10 20:54 lokichoggio 阅读(117) 评论(0) 推荐(0)
摘要:一.函数参数 形式参数 动态传参 1. 动态接收位置参数 args 在参数位置编写 表示接收位置参数,在形参位置把传递过来的实参进行聚合,聚合成元祖 注意:动态参数必须在位置参数后面 2. 动态接收关键字参数 kwargs 在参数位置编写 表示接收动态关键字参数,接收的是一个字典 动态传参的最终顺序 阅读全文
posted @ 2018-12-07 21:56 lokichoggio 阅读(168) 评论(0) 推荐(0)
摘要:一. 什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性:(1).减少重复代码 (2).使程序变得可扩展 (3).使程序变得易维护 二. 定义函数,函数名,函数体,函数的调用 使用关键字del来定义函数,语法为: del 函数名(): 函 阅读全文
posted @ 2018-12-06 20:11 lokichoggio 阅读(199) 评论(0) 推荐(0)