随笔分类 -  Python

摘要:先说总结,白话来讲,@wraps相当于是装饰器的装饰器。 python内置的方法使用解释,看起很复杂的样子┓( ´∀` )┏ 下面举个栗子: 不用@wraps时,打印出来是酱婶儿的 使用之后看起来清爽了很多 通过对比结果,@wraps的作用猜出来个大概。 使用之后它返回的是参数test_func方法 阅读全文
posted @ 2019-04-23 11:34 LiliP 阅读(1386) 评论(1) 推荐(0)
摘要:@property装饰器作用:把一个方法变成属性调用 使用@property可以实现将类方法转换为只读属性,同时可以自定义setter、getter、deleter方法 @property&@.setter 把方法变成属性,只需要在方法前添加@property装饰器即可。 继续添加一个装饰器@bir 阅读全文
posted @ 2019-03-28 15:58 LiliP 阅读(2355) 评论(0) 推荐(0)
摘要:logging模块:应用程序的灵活事件日志系统,可以打印并自定义日志内容 logging.getLogger 创建一个log对象 创建一个log对象 setLevel:设置日志级别 setLevel:设置日志级别 日志级别 打印日志 打印日志 默认只有超过warning级别的日志才会打印 loggi 阅读全文
posted @ 2019-03-09 11:38 LiliP 阅读(662) 评论(0) 推荐(0)
摘要:使用python实现《剑指offer》面试题ヾ(◍°∇°◍)ノ゙,以此记录。 2_实现Singleton模式 题目:实现单例模式 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。 阅读全文
posted @ 2019-02-19 11:58 LiliP 阅读(306) 评论(0) 推荐(0)
摘要:二叉树的遍历,分为深度优先遍历,以及广度优先遍历。 在深度优先遍历中,具体分为如下三种: 先序遍历:先访问根节点,再遍历左子树,再遍历右子树; 中序遍历:先遍历左子树,再访问根节点,再遍历右子树; 后序遍历:先遍历左子树,再遍历右子树,再访问根节点; 针对上图二叉树,三种遍历结果为: 先序遍历:50 阅读全文
posted @ 2019-02-18 18:42 LiliP 阅读(788) 评论(0) 推荐(0)
摘要:md5方法在hashlib库中,使用前需要先导入。它的主要方法为update,copy,以及转换为二进制,十六进制。 用法说明: 实例如下: 阅读全文
posted @ 2019-01-24 18:25 LiliP 阅读(737) 评论(0) 推荐(0)
摘要:用python3.6.5创建mysql库时出现如下报错,虽然报错,但是数据库可以插入成功。 解决方法 python版本:3.6.5 mysql版本: 8.0.12 1. 首先查看下mysql字符集 2. 根据上述查询结果,修改sql语句 DEFAULT CHARSET utf8 COLLATE ut 阅读全文
posted @ 2018-12-12 17:27 LiliP 阅读(21548) 评论(3) 推荐(0)
摘要:二叉搜索树 定义:如果一颗二叉树的每个节点对应一个关键码值,且关键码值的组织是有顺序的,例如左子节点值小于父节点值,父节点值小于右子节点值,则这棵二叉树是一棵二叉搜索树。 类(TreeNode):定义二叉搜索树各个节点 在该类中,分别存放节点本身的值,以及其左子节点,右子节点,父节点的值。 类(BS 阅读全文
posted @ 2018-11-10 21:53 LiliP 阅读(5842) 评论(0) 推荐(0)
摘要:链表基础(Linked list) 定义 链表:是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer) 链表的基本元素: 节点:每个节点有两个部分,左边部分称为值域,用来存放用户数据;右边部分称为指针域,用来存放指向下一个元素的指针。 head:hea 阅读全文
posted @ 2018-10-11 18:22 LiliP 阅读(305) 评论(0) 推荐(0)
摘要:扩展算法 树 二叉查找树(binary search tree) 对于其中的每个节点,左子节点的值都比它小,而右子节点的值都比它大 O(log n) 数组与二叉查找树运行时间对比 数组 二叉查找树 查找 O(log n) O(log n) 插入 O(n) O(log n) 删除 O(n) O(log 阅读全文
posted @ 2018-08-31 11:49 LiliP 阅读(826) 评论(0) 推荐(0)
摘要:K最近邻算法(k-nearest neighbours,KNN) 算法 使用 使用KNN来做两项基本工作——分类和回归: 分类就是编组; 回归就是预测结果(如一个数字)。 特征抽取 用于确定两个元素相似程度 方法 使用毕达哥拉斯公式 回归(regression) 回归可以预测结果 方法 挑选合适的特 阅读全文
posted @ 2018-08-31 11:45 LiliP 阅读(447) 评论(0) 推荐(0)
摘要:动态规划 原理 动态规划先解决子问题,再逐步解决大问题。但仅当每个子问题都是离散的,即不依赖于其他子问题时,动态规划才管用 比较方法 可以使用表格法逐个罗列分析,每个表格中填写子问题最优解 示例 包容量为4磅,商品有三件,吉他($1500),音响($3000),电脑($2000),尽可能装下总和最贵 阅读全文
posted @ 2018-08-30 12:08 LiliP 阅读(334) 评论(0) 推荐(0)
摘要:贪婪算法 每步都采取最优的做法,即每步都选择局部最优解,最终得到的就是全局最优解。 在有些情况下,贪婪策略显然不能获得最优解,但非常接近。完美是优秀的敌人,有时候,只需找到一个能够大致解决问题的算法,此时贪婪算法正好可派上用场,因为它们实现起来很容易,得到的结果又与正确结果相当接近。 近似算法(ap 阅读全文
posted @ 2018-08-29 11:34 LiliP 阅读(578) 评论(0) 推荐(0)
摘要:狄克斯特拉算法(Dijkstra’s algorithm) 找出最快的路径使用算法——狄克斯特拉算法(Dijkstra’s algorithm)。 使用狄克斯特拉算法 步骤 (1) 找出最便宜的节点,即可在最短时间内前往的节点。 (2) 对于该节点的邻居,检查是否有前往它们的更短路径,如果有,就更新 阅读全文
posted @ 2018-08-28 12:07 LiliP 阅读(5475) 评论(0) 推荐(0)
摘要:广度优先搜索(breadth first search) 图 最短路径问题(shorterst-path problem) 解决最短路径问题的算法被称为广度优先搜索。 最短路径问题解决步骤 (1) 使用图来建立问题模型。 (2) 使用广度优先搜索解决问题。 图的定义 图模拟一组连接。 图由节点(no 阅读全文
posted @ 2018-08-27 11:47 LiliP 阅读(443) 评论(0) 推荐(0)
摘要:散列表 散列函数 定义 散列函数“将输入映射到数字”。即无论你给它什么数据,它都还你一个数字。 散列函数必须满足一些要求 l 它必须是一致的。例如,假设你输入apple时得到的是4,那么每次输入apple时,得到的都必须为4。 l 它应将不同的输入映射到不同的数字。 例如, 如果一个散列函数不管输入 阅读全文
posted @ 2018-08-24 11:35 LiliP 阅读(485) 评论(0) 推荐(0)
摘要:递归 实例:在盒子中寻找钥匙 方法1:使用while循环 (1) 创建一个要查找的盒子堆。 (2) 从盒子堆取出一个盒子,在里面找。 (3) 如果找到的是盒子,就将其加入盒子堆中,以便以后再查找。 (4) 如果找到钥匙,则大功告成! (5) 回到第二步。 方法2:使用递归 (1) 检查盒子中的每样东 阅读全文
posted @ 2018-08-21 23:37 LiliP 阅读(461) 评论(0) 推荐(0)
摘要:内存的工作原理 需要将数据存储到内存时,请求计算机提供存储空间,计算机返回一个存储地址。需要存储多项数据时,有两种基本方式——数组和链表。 数组和链表 数组 使用数组意味着所有内容在内存中都是相连的(紧靠在一起的)。 在数组中添加新元素,如果没有了空间,就得移到内存的其他地方,因此添加新元素的速度会 阅读全文
posted @ 2018-08-20 15:22 LiliP 阅读(197) 评论(0) 推荐(0)
摘要:二分查找 基本概念 二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。 使用二分查找时,每次都排除一半的数字 对于包含n个元素的列表,用二分查找最多需要log2n步,而简单查找最多需要n步。 示例: 如果列表包含8个数字,你最多需要检 阅读全文
posted @ 2018-08-15 15:23 LiliP 阅读(802) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-08-02 14:20 LiliP 阅读(102) 评论(0) 推荐(0)