题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/920/157返回它的最大深度3。思路BFS广度优先搜索,使用双端队列deque(因为性能比另外两种Queue好得多),在大循环内对二叉树的每个层做一次遍历,range(len(queue))使只遍历当前的层,每次大循环ans加1。由于每个节点仅访问一次,所以时间
系统 2019-09-27 17:56:23 2158
生成器在Python中,使用了yield的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。列表推导式空间开销大占用内存耗时大,.生成器保存的是算法,而列表保存的计算后的内容,所以同样内容的
系统 2019-09-27 17:56:10 2158
最近在项目中调用第三方接口时候,经常会出现请求超时的情况,或者参数的问题导致调用异代码异常。针对超时异常,查询了python相关文档,没有并发现完善的包来根据用户自定义的时间来抛出超时异常的模块。所以自己干脆自己来实现一个自定义的超时异常。目前找到了两种方式来实现超时异常的功能(signal.alarm()、threading实现超时异常)方法1thread+time原理:将要调用的功能函数放入子线程,通过设定子线程的阻塞时间,超时则主线程并不会等待子线程
系统 2019-09-27 17:54:54 2158
网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据。虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间。Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便。使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发。首先先要回答一个问题。问:把网站装进爬虫里,总共分几步?答案很简单,四步:新建项目(Project):新建一个新
系统 2019-09-27 17:54:44 2158
python3无法正常安装PIL,因为PIL只支持python2各个版本,还没有python3的版本。这里是PIL官网http://www.pythonware.com/products/pil/可以看出只支持python2。不过有一个可以替代PIL的包,并且可以在python3上正常安装。Pillow包。Windows下安装方法:step1:windows+Rstep2:cmdstep3:pipinstallPillow截图如下:安装成功,大功告成。以上
系统 2019-09-27 17:54:39 2158
《Python3爬虫、数据清洗和可视化实战》零一韩要宾黄园园著第十章综合应用实例实例:按性价比给用户推荐旅游产品第一部分:数据采集importrequestsimportjsonimporturllib.Requestimporttimeimportcsvimportrandomfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver,
系统 2019-09-27 17:54:29 2158
本文实例讲述了python3.6中@property装饰器的使用方法。分享给大家供大家参考,具体如下:1、@property装饰器的使用场景简单记录如下:负责把一个方法变成属性调用;可以把一个getter方法变成属性,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值;只定义getter方法,不定义setter方法就是一个只读属性2、通过一个例子来加深对@property装饰器的理解:利用@prop
系统 2019-09-27 17:54:23 2158
前言相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行、命令行窗口运行、开发工具上运行等,其中在不同的操作平台上还互不相同。今天,小编讲些Python基础的内容,以Windows下交互式环境为依托,演示Python程序的运行。一般来说,顺利安装Python之后,有两种方式可以进入Python交互性环境。一种是在Python自带的IDLE中直接打开交互式窗口,如下图所示:另一种是打开开始菜单,输入cmd
系统 2019-09-27 17:53:39 2158
作者|piglei(腾讯高级工程师)转载自腾讯技术工程知乎专栏循环是一种常用的程序控制结构。我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行。而“循环”,则是实现让机器不断重复工作的关键概念。在循环语法方面,Python表现的即传统又不传统。它虽然抛弃了常见的for(init;condition;incrment)三段式结构,但还是选择了for和while这两个经典的关键字来表达循环。绝大多数情况下,我们的循环需求都可
系统 2019-09-27 17:53:35 2158
在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:hexstring如:'1C532145697A8B6F'str如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'list如:[0x1C,0x53,0x21,0x45,0x69,0x7A,0x8B,0x6F]各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。需要用到的核心的方法如下:list()将对象转换为
系统 2019-09-27 17:52:42 2158
一、安装PILPIL是PythonImagingLibrary简称,用于处理图片。PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置。在源码ImageFilter.py的第160行:所以,我们在这里自己改一下就OK了。项目地址:http://www.pythonware.com/products/pil/二、修改后的代码代码如下:复制代码代码如下:#-*-coding:utf-8-*-fro
系统 2019-09-27 17:52:23 2158
学了下beautifulsoup后,做个个网络爬虫,爬取读者杂志并用reportlab制作成pdf..crawler.py复制代码代码如下:#!/usr/bin/envpython#coding=utf-8"""Author:AnemoneFilename:getmain.pyLastmodified:2015-02-1916:47E-mail:anemone@82flex.com"""importurllib2frombs4importBeautiful
系统 2019-09-27 17:51:35 2158
先给大家介绍下CentOS7下安装Python3.6的方法安装python3.6可能使用的依赖yuminstallopenssl-develbzip2-develexpat-develgdbm-develreadline-develsqlite-devel•到python官网找到下载路径,用wget下载wgethttps://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz•解压tgz包tar-zxvfPyt
系统 2019-09-27 17:50:23 2158
python读写Excel最近小编在处理各种.xlsx表格的数据处理和计算的工作,目前python用于操作表格的模块有很多,功能各有千秋。本文主要讲的是xlwt用于写,xlrt用于读。表格写入简单的写入功能可用xlwt模块,写入功能的难点在于写入合并的单元格。单元格的下标都是从0开始。xlwt官方API:https://xlwt.readthedocs.io/e...安装:pipinstallxlwt新建workbook:wk=xlwt.Workbook(
系统 2019-09-27 17:50:14 2158
自动化一直是测试圈中的热聊,也是大家追求的技术方向。在测试中,往往回归测试也是测试人员的“痛点”。对于迭代慢、变更少的功能,就能用上自动化来替代人工回归,减轻工作量。问题在分享环境搭建之前,先抛出我的一个疑问吧。app启用时,分不同的场景:1.首次安装启用,有欢迎页;2.非首次启用,直接进入到登录页;3.配置了推荐展示时,启用app,会先展示推荐内容,才进入到登录页。不同场景对应的activity都是不同的,我目前处理办法是,写了个输入函数,加了个if判断
系统 2019-09-27 17:49:54 2158