剑指offer:从上到下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。结果:[8,6,10,5,7,9,11]解题思路典型的使用队列的题目。每从队列头部获取一个节点,就将该节点的左右子节点存入队列的尾部。如此往复,直至队列为空。代码#coding:utf-8classSolution:#从上往下打印出二叉树的每个节点,同层节点从左至右打印defPrintFromTopToBottom(self,root):array=[]resu
系统 2019-09-27 17:49:17 2215
这篇快文介绍了使用Gmail作为您的e-mail服务器,通过Python的内置SMTP库发送电子邮件。它并不复杂,我保证。下面是如何在Python中登录GMail:importsmtplib#Thebelowcodeneverchanges,thoughobviouslythosevariablesneedvalues.session=smtplib.SMTP('smtp.gmail.com',587)session.ehlo()session.start
系统 2019-09-27 17:49:08 2215
先说说线程在多线程中,为了保证共享资源的正确性,我们常常会用到线程同步技术.将一些敏感操作变成原子操作,保证同一时刻多个线程中只有一个线程在执行这个原子操作。我最常用的是互斥锁,也称独占锁。其次还有读写锁,信号量,条件变量等。除此之外,我们在进程间通信时会用到信号,向某一个进程发送信号,该进程中设置信号处理函数,然后当该进程收到信号时,执行某些操作。其实在线程中,也可以接受信号,利用这种机制,我们也可以用来实现线程同步。更多信息见//www.jb51.ne
系统 2019-09-27 17:48:40 2215
今天给喜欢看电影的同学推荐一款Python制作的搜索电影片源的工具。经常在网上搜索片源的同学应该知道,各大片源网站广告不断,有些网站,点一下查询就弹出广告,关掉广告后再点查询,片源信息才显示正常。今天这款工具搜索是基于Python的GUI库PyQt5开发的。下载项目我们命令行下用git命令先把项目从github上克隆下来。gitclonehttps://github.com/lt94/MovieHeavens.git如果没有安装git的话也可以直接下载下来
系统 2019-09-27 17:48:39 2215
详解Python序列化Serialize和反序列化Deserialize序列化(serialization)序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。序列化和反序列化的目的1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方。3、使程序更具维护性序列化由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象
系统 2019-09-27 17:48:16 2215
rpclib是一个非常好用的pythonwebservice库,可以动态的生成wsdl,不过这个项目已经基本停止,并被一个新的项目取代spyne,由于旧的项目工作已经比较稳定,所以我没有贸然升级到spyne。我在rpclib编写service方法时,遇到一个奇怪的错误:访问wsdl(http://localhost:9898/?wsdl)页面,返回502BadGateway。在日志中看到如下错误信息:复制代码代码如下:ValueError:Allstrin
系统 2019-09-27 17:48:07 2215
1.初识python(python2.7)1)python既是面向过程的又可以是面向对象的。面向过程:代码由可以重用的函数构建;面向过程:代码由数据和功能组合成的对象构建。2)python是一种解释型语言,与java等编译型语言不同,在执行python程序的过程中无需编译器进行编译和链接,既在执行python代码时减少了编译环节,解释器会将源代码转换成字节码再翻译给计算机执行。3)python是一种交互式语言:在python的提示符>>>后面直接执行代码。
系统 2019-09-27 17:48:00 2215
什么是python描述符:类里面有__get__或__set__或__del__的就叫描述符属性查找优先级类属性数据描述符(同时实现__get__和__set__)实例属性非数据描述符(只实现__get__)__getattr__通过代理和描述符实现属性懒加载这里是使用装饰器的方式实现的懒加载。可以将耗时的操作放到方法里面。在未使用的时候是一个方法,当第一次使用过后就会替换掉方法,并为之设置属性值。注意,只有在使用的时候才会执行函数里面的代码,并且只执行一
系统 2019-09-27 17:47:51 2215
count()方法返回出现在范围内串子数range[start,end]。可选参数的start和end都解释为片符号。语法以下是count()方法的语法:str.count(sub,start=0,end=len(string))参数sub--这是子串用来进行搜索。start--搜索从这一索引。第一个字符从0开始的索引。默认情况下搜索从0开始的索引。end--搜索从该索引结束。第一个字符从0开始的索引。默认情况下搜索结束的最后一个索引。返回值此方法返回集中
系统 2019-09-27 17:47:22 2215
复制代码代码如下:>>>importurllib>>>data='丽江'>>>printdata丽江>>>data'\xe4\xb8\xbd\xe6\xb1\x9f'>>>urllib.quote(data)'%E4%B8%BD%E6%B1%9F'那我们想转回去呢?复制代码代码如下:>>>urllib.unquote('%E4%B8%BD%E6%B1%9F')'\xe4\xb8\xbd\xe6\xb1\x9f'>>>printurllib.unquote(
系统 2019-09-27 17:47:11 2215