一、首先二叉树的定义:classTreeNode:def__init__(self,x):self.val=xself.left=Noneself.right=None构建一棵二叉树:classNode(object):def__init__(self,val):self.val=valself.lchild=Noneself.rchild=NoneclassTree(object):def__init__(self):self.root=Noneself
系统 2019-09-27 17:52:24 1836
在python中内嵌函数可以引用外层函数作用域中的变量,并且可以通过某种操作来对其进行修改。这里我们就可以使用到nonlocal语句来进行声名。我之前写过一篇global用法的文章,nonlocal的用法与global的用法很像,本篇博客的后面就会讲一下nonlocal和global的区别。nonlocal语句的用法语法:允许内嵌函数修改定义在语法上位于外层的函数的作用域中的一个或者多个名称用法:nonlocal[变量名]注意:此语句仅适用于python3
系统 2019-09-27 17:50:55 1836
1.函数名的运用你们说一下,按照你们的理解,函数名是什么?函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值;但是作为函数名他也有特殊的功能就是加上()就会执行对应的函数,所以我们可以把函数名当做一个特殊的变量,那么接下来,我们就来研究一下这个特殊的变量。1.1函数的内存地址deffunc():print("呵呵")print(func)结果:通过上面代码可以我们知道,函数名指向的是这个函数的内存地址,其
系统 2019-09-27 17:50:42 1836
今天我们来到了循环队列这一节,之前的文章中,我介绍过了用python自带的列表来实现队列,这是最简单的实现方法。但是,我们都知道,在列表中删除第一个元素和删除最后一个元素花费的时间代价是不一样的,删除列表的第一个元素,那么在它之后的所有元素都要进行移动。所以当列表特别长的时候,这个代价就比较明显了。我们本文介绍的循环队列可以避免这个问题,同样我们上篇文章提到的用链表实现的方法也可以避免。下面,我们来介绍循环队列。循坏队列循环队列,就是将普通的队列首尾连接起
系统 2019-09-27 17:50:25 1836
1、Python生成器表达式1)、Python生成器表达式语法格式:(exprforiter_variniterable)(exprforiter_variniterableifcond_expr)2)、自定义生成器函数中使用yield,会返回一个生成器对象。yieldx生成器使用示例:In[1]:list((i**2foriinrange(1,11)))Out[1]:[1,4,9,16,25,36,49,64,81,100]In[2]:defgenNum
系统 2019-09-27 17:49:03 1836
回顾在前面的系列章节中,我们创建了一个数据库并且学着用用户和邮件来填充,但是到现在我们还没能够植入到我们的程序中。两章之前,我们已经看到怎么去创建网络表单并且留下了一个实现完全的登陆表单。在这篇文章中,我们将基于我门所学的网络表单和数据库来构建并实现我们自己的用户登录系统。教程的最后我们小程序会实现新用户注册,登陆和退出的功能。为了能跟上这章节,你需要前一章节最后部分,我们留下的微博程序。请确保你的程序已经正确安装和运行。在前面的章节,我们开始配置我们将要
系统 2019-09-27 17:48:59 1836
python3版本的Scapy--Scapy3k来实现一个简单的DDos。首先实现SYN泛洪攻击(SYNFlood,是一直常用的DOS方式之一,通过发送大量伪造的TCP连接请求,使被攻击主机资源耗尽的攻击方式)。TCP三次握手的过程在这里就不再赘述,SYN攻击则是客户端向服务器发送SYN报文之后就不再响应服务器回应的报文,由于服务器在处理TCP请求时,会在协议栈留一块缓冲区来存储握手的过程,如果超过一定的时间没有接收到客户端的报文,那么本次连接在协议栈中存
系统 2019-09-27 17:46:22 1836
python比php更流行,原因何在?php诞生之日起,就专注于风网页应用,在其它的领域没有什么知名度。python一开始就是想简化C,定位为一种通用的全面性的开发语言。但是更重要的一点是,python建立起了方便的扩展机制,可以方便用python或c编写库,发布库,用pip安装库。而php在可扩展性上就要差得许多,很长时间都没有库的发布与安装机制,所以只能定位在网页脚本上,在应用的广泛性上远不如python。一门语言不可能在一开始就尽善尽美,如果提供一种
系统 2019-09-27 17:46:18 1836
一简介1同步和异步函数或方法掉调用的时候,被调用者是否能得到最终结果来判断同步和异步直接得到最终结果的,就是同步调用不直接得到最终结果的,就是异步调用同步就是我让你打饭,你不打好我就不走开,直到你打饭给了我异步就是我让你打饭,你等着,我不等你,但是我会盯着你,你打完我会过来拿走,异步并不能保证多长时间将饭打完。异步给的是临时结果,目前是拿不到的同步只看结果是不是最终结果进行判断2阻塞,非阻塞函数或方法调用的时候,是否立即返回立即返回就是非阻塞调用不立即返回
系统 2019-09-27 17:45:54 1836
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操作数据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档。由于python的数据库模块有专门的数据库模块的规范,所以,其实不管使用哪种数据库的方法都大同小异的,这里就给出一段示范的代码:#-*-encoding:gb2312-*-importos,sys,
系统 2019-09-27 17:38:41 1836
这篇文章主要介绍了Pythondjango框架输入汉字,数字,字符转成二维码实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下模块必备:Python环境+pillow+qrcode模块核心代码importqrcodeqr=qrcode.QRCode(version=2,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=20,borde
系统 2019-09-27 17:38:37 1836
系统 2019-08-29 23:44:01 1836
系统 2019-08-29 23:39:15 1836
(完全限定类名:DataRabbit.ORM.IOrmAccesser)在DataRabbit框架中,通过IOrmAccesser来对数据库进行ORM访问,只要Entity(即ORM中的“O”)的定义与数据库表的结构完全一致,即可使用IOrmAccesser来对其进行ORM操作。1.EntityEntity除了包括成员变量与属性(这些变量与属性与数据库表的结构完全一致)外,不需要包含任何其它元素。在轻量的数据访问框架--序的例子代码中,我们已经看到了一个S
系统 2019-08-29 23:36:46 1836
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。该版本主要修复一些小bug,下载地址:http://www.terracotta.org/dl/quartz-oss-sign-up该项目已经被Terraco
系统 2019-08-29 23:33:52 1836