上篇文章我们介绍了树的概念,今天我们来介绍一种特殊的树——二叉树,二叉树的应用很广,有很多特性。今天我们一一来为大家介绍。二叉树顾名思义,二叉树就是只有两个节点的树,两个节点分别为左节点和右节点,特别强调,即使只有一个子节点也要区分它是左节点还是右节点。常见的二叉树有一般二叉树、完全二叉树、满二叉树、线索二叉树、霍夫曼树、二叉排序树、平衡二叉树、红黑树、B树这么多种类。我们这篇文章中简单介绍一般二叉树、完全二叉树和满二叉树。一般二叉树很简单,只要满足子节点
系统 2019-09-27 17:47:38 1936
目录一、守护线程1.1详细解释1.2守护线程例11.3守护线程例2一、守护线程无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁。需要强调的是:运行完毕并非终止运行。对主进程来说,运行完毕指的是主进程代码运行完毕对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕1.1详细解释主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源(
系统 2019-09-27 17:47:07 1936
Python简介python的创始人为吉多・范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多・范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。Python和其他语言的对比:C和Python、Java、C#等C语言:代码编译得到机器码,机器码在处理器上直接执行,每一条指令控制CPU工作其他语言:代码编译得到字节码,虚拟机执行字节码并转换成机器码再后在处理器上执行Python和CPython这门语
系统 2019-09-27 17:38:12 1936
0x00is与====运算符是比较两个对象的内容是否相等,默认情况是调用对象的__eq__方法进行比较;而is是比较两个对象是否一样,它比较的两个对象的id,即它们的内存地址是否相同。>>>a=[1,2,3]>>>b=[1,2,3]>>>a==bTrue#a和b是否是同一个对象>>>aisbFalse#a和b的地址其实是不一样的>>>id(a)4498717128>>>id(b)4446861832在比较时但也有例外。Python对一些常用的值进行缓存优化
系统 2019-09-27 17:38:03 1936
由于Googlereader的关闭,这段时间接触rss的东西相对多很多。试过qq的reader,不怎么样,阅读速度没有,是否阅读的标记也没有。其他网站的不想用,又要多注册账户。找到python的rss处理包feedparser,官方文档很详细。http://pythonhosted.org/feedparser/复制代码代码如下:>>>importfeedparser>>>d=feedparser.parse(‘http://0x55aa.sinaapp.
系统 2019-09-27 17:37:43 1936
首先感谢这位博主整理的AndrewNg的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273开一个我的github传送门,可以看到代码。https://github.com/VVV-LHY/deeplearning.ai/tree/master/improveNeuralNetwork/InitializeRegularize以下是今天要分类的目标点集:
系统 2019-09-27 17:57:39 1935
利用上一篇的框架,再写了个翻转棋的程序,为了调试minimax算法,花了两天的时间。几点改进说明:拆分成四个文件:board.py,player.py,ai.py,othello.py。使得整个结构更清晰,更通用,更易于维护。AI的水平跟minimax的递归深度,以及评价函数有关。基于此,我把minimax和评价函数都放到AI类里面AIPlayer使用了多重继承。继承了Player与AI两个类Game类中把原run函数里的生成两个玩家的部分提出来,写成一个
系统 2019-09-27 17:54:46 1935
一、装饰器decoratordecorator设计模式允许动态地对现有的对象或函数包装以至于修改现有的职责和行为,简单地讲用来动态地扩展现有的功能。其实也就是其他语言中的AOP的概念,将对象或函数的真正功能也其他辅助的功能的分离。二、Python中的decoratorpython中的decorator通常为输入一个函数,经过装饰后返回另一个函数。比较常用的功能一般使用decorator来实现,例如python自带的staticmethod和classmet
系统 2019-09-27 17:54:11 1935
英语单词优化上篇文章写到了Python开发英语单词记忆工具,其中依赖了bootstrap.cssjQuery.js基础html模块以及片段的css样式。有些朋友问,怎么能将这个练习题打包成单独的exe可执行文件,来脱离python环境使用呢?在这里跟大家简单说下思路,有需求的朋友可以自己去扒拉扒拉…依赖的css和js,如果有外网的前提,可以使用bootcdn提供的链接引用:https://cdn.bootcss.com/jquery/3.4.0/jquer
系统 2019-09-27 17:52:59 1935
第十二~十三天:python进阶深入1.生成器:创建生成器最简单的方法就是用圆括号()代替方括号[]把列表生成式的[]变成()生成器只能调用一次,不占用资源。用完就释放出来。foriing:print(i)也可以调用Next函数直到计算出最后一个元素位置,但是这种方法很明显不适用,并且最后会抛出StopIteration的错误。斐波那契数列:除第一个和第二个数外,任意一个数都可由前两个数相加得到:1,1,2,3,5,8,13,21,34,…return返回
系统 2019-09-27 17:51:38 1935
爬虫即网络爬虫,英文是WebSpider。翻译过来就是网络上爬行的蜘蛛,如果把互联网看作一张大网,那么爬虫就是在大网上爬来爬去的蜘蛛,碰到想要的食物,就把他抓取出来。我们在浏览器中输入一个网址,敲击回车,看到网站的页面信息。这就是浏览器请求了网站的服务器,获取到网络资源。那么,爬虫也相当于模拟浏览器发送请求,获得到HTML代码。HTML代码里通常包含了标签和文字信息,我们就从中提取到我们想要的信息。通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找
系统 2019-09-27 17:51:06 1935
前言Python中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一下:该方法用于获取一个对象的字节大小(bytes)它只计算直接占用的内存,而不计算对象内所引用对象的内存这里有个直观的例子:importsysa=[1,2]b=[a,a]#即[[1,2],[1,2]]#a、b都只有两个元素,所以直接占用的大小相等sys.get
系统 2019-09-27 17:51:00 1935
初识pythonpython爬虫爬虫步骤(个人学习后的理解):获取URL地址解析URL源码提取源码中的需要信息使用re、beautifulsoup、urllib.request等常用库写入txt、excel等等。Python格式化字符:format_string%string_to_convert其中:format_string为格式标记字符串,形式为“%cdoe”;string_to_convert为要格式化的字符串,如果是两个以上,则需要用小括号括起来
系统 2019-09-27 17:49:59 1935
1.冒泡排序1.1算法思想冒泡排序是一种简单的排序算法。通过重复地遍历要排序的数列,一次比较两个元素,从最开始的一对到最后的一对(相当于一个长度为2的滑动窗口),如果它们的顺序错误(看从小到达排列还是从大到小排列)就把它们交换过来。如果是升序排列的话,每次遍历都会把最大值交换到最右边。然后重复这个过程,直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的头部,就像冒泡一样。这个算法不需要额外的空间,
系统 2019-09-27 17:49:46 1935
lambda是表达式,用于创建匿名函数,可以和filter、map、reduce配合使用。本文环境Python3.7。一、lambda表达式lambda只包含一个语句,用于创建匿名函数。语法:lambda[arg1[,arg2,.....argn]]:expressionarg1--参数,可以有多个expression--表达式使用例子:f1=lambdax:x>10print(f1(1))#输出:Falseprint(f1(11))#输出:Truef2=
系统 2019-09-27 17:49:17 1935