这篇文章总结了关于二叉树的创建和各种遍历方式。二叉树的创建方式通过层次遍历顺序创建先序遍历顺序(带上叶子结点标识符)创建先序顺序+中序顺序中序顺序+后序顺序二叉树的递归方式先序遍历(递归+非递归)中序遍历(递归+非递归)后序遍历(递归+非递归)广度优先遍历(BFS)首先来定义一下节点的结构classNode():def__init__(self,val):self.val=valself.left=Noneself.right=None然后定义树类clas
系统 2019-09-27 17:57:13 2270
从url中找到域名,首先想到的是用正则,然后寻找相应的类库。用正则解析有很多不完备的地方,url中有域名,域名后缀一直在不断增加等。通过google查到几种方法,一种是用Python中自带的模块和正则相结合来解析域名,另一种是使第三方用写好的解析模块直接解析出域名。要解析的url复制代码代码如下:urls=["http://meiwen.me/src/index.html","http://1000chi.com/game/index.html","htt
系统 2019-09-27 17:56:17 2270
#!/usr/bin/python#-*-coding:UTF-8-*-#######################################createdbybasededato####2018-01-02####微信#####################################importurllib.requestimportjsonclassWxSend(object):def__init__(self,Token_Url,Ms
系统 2019-09-27 17:53:34 2270
错误提示图片首先,我的操作系统是win7旗舰版,安装Python3.7.1之后启动时,提示如图错误,网上比较多的是两种处理方法:(1)安装Windows补丁程序(2)安装VCredit.exe第一种方案我这边下载了KB3118401、KB2999226,但是双击安装的时候安装不了;第二种方案大家都推荐的是安装v++2015,也安装成功了,但是安装后仍然报错。然后看着网上的推荐时间都比较早,我这边考虑是不是安装2017版本的会解决问题,因为2017除了兼容2
系统 2019-09-27 17:52:21 2270
这是书籍《PandasCookbook》书籍第05章的代码复现,所有代码运行在JupyterNotebook上,原讲解地址是:https://www.jianshu.com/p/d67080f59b06我上传代码的github地址是:https://github.com/Asunqingwen/PandasCookbook.gitgithub上有该书中用到的data,里面代码会不定期更新(因为工作原因,时间不定),直到本书学习完成!相比原讲解,会穿插一些自
系统 2019-09-27 17:52:02 2270
前言我最近都在写一些Python3.8的新功能介绍的文章,在自己的项目中也在提前体验新的Python版本。为什么我对这个Python3.8这么有兴趣呢?主要是因为在Python2停止官方维护的2020年来临之前,Python3.8是最后一个大版本,虽然还没有公布Python3.9的发布时间表,但是按过去的经验,我觉得至少等Python3.8.4发布之后才可能发布Python3.9.0,那会应该已经在2020年年末了。所以大家最近2年的话题都会是Python
系统 2019-09-27 17:48:51 2270
在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息。我们可以通过对有用的信息设置不同颜色来达到醒目的效果,因为我平时都是在linux下开发,而linux终端中的颜色是用转义序列控制的,转义序列是以ESC开头,可以用\033完成相同的工作(ESC的ASCII码用十进制表示就是27,等于用八进制表示的33)。书
系统 2019-09-27 17:48:16 2270
写在前面之前搞树莓派,opencv的contrib版本死活装不上,最后用C++版本四线程编译了一天,浪费生命的玩意儿我明明记得之前,pipinstallopencv-contrib是可以安装的......,年级大了,老了最近终于找到了一篇推文,原来是pipinstallopencv-contrib-python,呵呵,什么时候改的??以下摘自这位大佬的博客:大佬原话OpenCVContrib是OpenCV的扩展模块,包含了许多最新的以及可能还没有正式发布有
系统 2019-09-27 17:47:33 2270
一、模拟登录图书馆管理系统我们可以先看一下登录页面(很多学校这些管理系统页面就是很low):两种方式去模拟登录图书馆:1.构造登录表单进行模拟登录这种方式模拟登录似乎是很可靠的,但有时候就是在验证码获取上很困难,如果简单的网站,有的会利用当前时间戳来构造验证码,这种就很容易从网页上观察出来,但比如我们这次要模拟登录的网站似乎是不能这样做,因为它是使用JavaScript标准库里的Math函数直接随机生成的验证码链接,可以从下面图片上观察验证码处的代码:它使
系统 2019-09-27 17:37:46 2270
python中有try——except的方法捕获异常,可以获取到异常的种类以及自定义异常,但是有时候对于debug测试来说,信息不全,比如说触发异常的具体位置在哪:importtracebacktry:num=int('abc')exceptException:traceback.print_exc()traceback.print_exc()直接打印异常traceback.format_exc()返回字符串还可以将信息写入到文件traceback.pri
系统 2019-09-27 17:57:31 2269
本文实例讲述了Python使用lambda表达式对字典排序操作。分享给大家供大家参考,具体如下:lambda表达式也常用于字典排序,既然写到字典排序,那就把按键排序和按值排序都写写好了。字典按键排序显然按键排序,需要用字典中每个元素的第一项排序dict={'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7}sorted_dict_asc=sorted(dict.items(),key=lambdaitem:item[0])s
系统 2019-09-27 17:57:09 2269
网络爬虫由于一个ip频繁访问同一网站,容易返回456或者被长时间封禁。特别的本机有socks5客户端的设置如下,前提是已经安装了socks5的客户端软件,并且启动起来在固定端口为本机提供服务。使用前先更新requests版本为支持socks的版本。pipinstall-Urequests[socks]importrequestsmy_proxies={"http":"http://127.0.0.1:1080","https":"https://127.0
系统 2019-09-27 17:56:50 2269
摘要在进行数据分析时,我们经常需要把DataFrame的一列拆成多列或者根据某列把一行拆成多行,这篇文章主要讲解这两个目标的实现。码字不易,喜欢请点赞!!!读取数据将City列转成多列(以‘|’为分隔符)这里使用匿名函数lambda来讲City列拆成两列。3.将DataFrame一行拆成多行(以‘|’为分隔符)方法一:在刚刚得到的DataFrame基础上操作,如下图所以,可以明显看到我们按照City列将DataFrame拆成了多行。主要是先将DataFra
系统 2019-09-27 17:56:30 2269
迭代器迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。在for循环中,Python将自动调用工厂函数iter()获得迭代器,自动调用next()获取元素,还完成了检查StopIteration异常的工作。常用的几个内建数据结构tuple、list、set、dict都支持迭代器,字符串也可以使用迭代操作。你也可以自己实现一个迭代器,如上所述,只
系统 2019-09-27 17:52:01 2269
1.基本原理通过一个变换,将输入图像的灰度级转换为`均匀分布`,变换后的灰度级的概率密度函数为$$P_s(s)=\frac{1}{L-1}$$直方图均衡的变换为$$s=T(r)=(L-1)\int_0^r{P_r(c)}\,{\rmd}c$$$s$为变换后的灰度级,$r$为变换前的灰度级$P_r(r)$为变换前的概率密度函数2.测试结果图源自skimage3.代码importnumpyasnpdefhist_equalization(input_image
系统 2019-09-27 17:48:32 2269