python
文章平均质量分 61
pardon110
这个作者很懒,什么都没留下…
展开
-
合并K个已排序链表
需求合并 k 个已排序的链表并将其作为一个已排序的链表返回[{1,2,3},{4,5,6,7}] // 入参{1,2,3,4,5,6,7} // 返回分治+递归用二分法把列表进行中间拆分融合每个小列表中的链表,反向func mergeKLists( lists []*ListNode ) *ListNode { if lists == nil{ return nil }else if len(lists) == 1 { return l原创 2020-12-31 13:06:48 · 406 阅读 · 0 评论 -
golang 双重递归之路径总和
递归模型是计算机理论的强力支撑题面给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-sum-iiiroot = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3原创 2020-09-26 16:43:43 · 196 阅读 · 0 评论 -
golang 判断是否为二叉搜索树
引言使用数据范围可以,在合适的场景简化问题中序遍历的有序性方便判定二叉搜索树栈的多变性,在于并非是连续进或出, 而是进出不均等。如对弹出元素相关性分析,确定是否有新关联元素入栈,换而言之,当前出栈的元素连续的后一出栈元素,未必就是当下栈顶元素。如下所示,d 出 e入 再出是e而非最先留下的 c问题判断给出的二叉树是否是一个二叉搜索树(BST)二叉搜索树的定义如下一个节点的左子树上节点的值都小于自身的节点值一个节点的右子树上节点的值都大于自身的节点值所有节点的左右子树都必须是二叉搜原创 2020-09-24 17:49:38 · 361 阅读 · 0 评论 -
层序遍历的巧用
需求给定一个仅包含数字0-9 0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。例如根节点到叶子节点的一条路径是1→2→3,那么这条路径就用123 来代替。找出根节点到叶子节点的所有路径表示的数字之和这颗二叉树一共有两条路径,根节点到叶子节点的路径 12根节点到叶子节点的路径 13答案为 12+13=25常规思路先求得根节点到各自叶子节点路径将路径信息转为数字信息相加求和golang实现import "math"func sumNumbers( root原创 2020-09-24 12:00:58 · 192 阅读 · 0 评论 -
栈的春天 反转每对括号的子串
栈的使用花样百出,多栈会简化很多问题题面给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。输入:s = "a(bcdefghijkl(mno)p)q"输出:"apmnolkjihgfedcbq"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-substrings-between-each-pair-of-.原创 2020-09-14 12:45:57 · 175 阅读 · 0 评论 -
括号的分数
递归虽简单明了,但能不用尽量不用题面给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。示例输入: "(()(()))"输出: 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/score-of-parentheses递归本质 寻找拆解当层子串,及条件递归,加,乘法描述平衡字符.原创 2020-09-13 09:28:46 · 765 阅读 · 0 评论 -
算法 求下一个更大的元素
题面给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]分析使用单调栈,出栈针对栈顶单调递增或递减,单步多出直到出栈不不再符合条件p原创 2020-09-08 20:53:09 · 159 阅读 · 0 评论 -
GUI编程之tkinter密码器
python内置的GUI编程tkinter小巧灵活,本文以密码码器示例流程用户登录/注册,成功则提示欢迎语,不正确或密码错误有相应警告不存在帐户则提醒注册,并回调子页面注册,需要密码确认,注册已存在用户会被提醒结构两个window窗口,一个负责主界面引入了背景图,一个子负责注册账号密码,ui以tk为后缀名。event为tk的事件回调,store以pickle字典序列化存储类,u...原创 2019-12-25 14:52:37 · 383 阅读 · 0 评论 -
python之三元运算符
三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断。单行条件伪代码 如果条件为真,返回真 否则返回假condition_is_true if condition else condition_is_false例子is_fat = Truestate = "fat" if is_fat else "not fat"它允许...原创 2019-12-08 09:46:55 · 182 阅读 · 0 评论 -
列表生成式 参数解包
类型系统是编程语言的基石。PHP 的数据类型是隐式存在,不同的数据类型之间运算,部分可以自动完成转型。java,golang 都是强类型语言,类型需要显性声明,即便go类型推断表现的像动态语言。类型python 从某种意义上来讲,并非像PHP那样完全动态,但使用 python 还是需要类型意识。s="abc"i=5d={'Admin':28}l=['a',23,('b','cc')...原创 2019-12-05 12:28:30 · 387 阅读 · 0 评论 -
xlsxwriter 操作 Excel
xlsxwriter 简介用于以Excel 2007+ XLSX文件格式编写文件优点文本,数字和公式写入,速度很快,占用内存小支持诸如格式设置,图像,图表,页面设置,自动过滤器,条件格式设置等功能缺点无法读取或修改现有的Excel XLSX文件演示其使用流程,与你使用excel流程一致,只不过将你主步骤分解成了一个个对象实例来操作,通过引用实现操作关联import xls...原创 2019-12-05 12:21:40 · 1994 阅读 · 0 评论 -
pptx 批量操作幻灯片
本文示例使用python-pptx模块批量生成幻灯片,批量修改导入幻灯片表格内容及格式,以及在指定页插入表格前言一个prs对象就是一棵树,它的下面挂载了多张幻灯片slide,而每张幻灯片下有多个shape实例,也就是你在制作幻灯片时的一个个隐形框框。其基本的层次关系如下,而table仅是其shapes集合中的一个子类型。Presentation -> slide_masters -...原创 2019-12-05 12:16:50 · 675 阅读 · 0 评论 -
爬虫 bs4 爬取扇贝 python 单词书
概述本例不涉及cookie,即抓取的资源无需登录认证。爬虫主要做两件事,一个是抓取请求链接,另一个是分析响应的数据。鉴于扇贝单词书的词串页中的页码是通过js动态生成,直接抓取页面内容是不能获取,因此程序模拟了它的分页请求路径分析向目标url发请求,拉取响应体分析页面 爬取指定内容 抓取链接 分析数据数据写入文件输出,需要注意写入编码,若未指定 py 会采用操作系统的默认编码Bea...原创 2019-07-13 10:08:24 · 718 阅读 · 0 评论 -
Class has no 'objects' member in django
场景在使用django时,源码如下from django.http import HttpResponsefrom .models import Destinationdef index(request): boards = Destination.objects.all() ...工具检测报错如下: Class 'Questionhas no objects...原创 2019-07-13 10:03:41 · 2463 阅读 · 0 评论 -
python 元类
元类metaclassA metaclass is a class/object which defines a type/class of other classesmetaclass 可以是个类,函数,或者是支持调用接口的对象原理创建类对象,它的metaclass将会被调用,使用当前类名,基类及属性和方法若metaclass没有被定义,那么默认的 metaclass typ...原创 2019-06-02 11:07:45 · 115 阅读 · 0 评论 -
scrapy 用爬虫规则指定爬行轨迹自动抓取
需求给定爬虫起始地址,路径,获得目标页的指定内容约定路径 起点首页 --> (历史)频道 --> 小说info页–> 章节详情起始页 --> 作者中心 --> 大神之光路径中的每个页面html结构都不同分析通用爬虫,写规则,用链接抽取器为便于演示,只展示起点与终点页指定内容,中间路径以爬虫引擎debug信息展示准备scrapy 1.6Sel...原创 2019-05-29 19:53:39 · 793 阅读 · 0 评论 -
python 类概述
类方法类方法 VS 静态方法 VS 实例方法通常都在类代码块内定义类方法和实例方法 都有宿主类方法的使用类对象 cls 作为第一个参数, 实例方法则是 实例对象 self实例的可见范围更广,宿主可以传递各自相关信息,显然实例传递的信息量更大类方法定义 使用装饰器 @classmethod静态方法无需宿主参数 self,cls定义方法体中不能使用类或实例的任何属性和方法...原创 2019-06-01 19:13:59 · 152 阅读 · 0 评论 -
python 容器类 数据结构
集合(set)set集合 可变容器set 不记录元素的添加顺序, 无序set元素不允许重复, 应用场景去重set 方法索引支持运算符<= issubset() 左侧是否为右侧set对象子集>= issuperset() 范围比较- difference() 对集合做减法, 不改变c集合本身c.difference_update(books) 用c集合...原创 2019-06-01 19:08:55 · 313 阅读 · 0 评论 -
文件操作IO指引
pathlib模块pathlib 一组处理操作系统上路径的类库PurePath 逻辑路径,并不会检查是否有真正的文件或目录PurePath 对象支持 / 作为运算符,win,unix皆用此PurePosixPath, PureWindowPathpathpath 是 purepath 子类,会真正访问底层的文件系统判断 Path 对应的路径是否存在,可以对文件进行读写...原创 2019-05-31 12:35:48 · 119 阅读 · 0 评论 -
多线程并发编程不完全指引
线程和进程进程当一个程序进入内存运行时,即变成一个进程。进程具有独立性,动态性,并发性现代操作系统支持多进程的并发执行并发(Concurrency) VS 并行(Parallel)并行 在同一时刻有多条指令在多个处理器上同时执行并发 在同一时刻只能有一条指令执行,多个进程指令被快速轮换执行(cpu执行速度太快了)线程线程的调度和管理由进程本身负责完成线程不...原创 2019-05-18 10:40:26 · 166 阅读 · 0 评论 -
python多进程编程指引
fork方法(仅适合linux)python支持使用多进程来实现并发编程fork方法作用启动两人进程一个是父进程,一个是fork出来的子进程os.fork()返回0,则表明fork出来的子进程在执行,若返回非0,则表明是父进程在执行进程ipos.getpid()os.getppid()应用场景并发执行的任务放在 if pid==0: 的条件执行体中, 即启动多个子...原创 2019-05-18 10:34:35 · 197 阅读 · 0 评论 -
一个命令开启http服务器
命令python -m http.server# 参数 [-h] [--cgi] [--bind ADDRESS] [--directory DIRECTORY] [port]详解cgi 指定cgi脚本服务器本质将http请求转为python命令行执行映射脚本并返回对应结果以服务器的形式访问python脚本文件py脚本代码文件默认目录在cgi-bin或者htb...原创 2019-05-18 21:48:25 · 2041 阅读 · 0 评论 -
python标注赋值 与 函数
annotation – 标注关联到某个变量、类属性、函数形参或返回值的标签,被约定作为 type hint 来使用。局部变量的标注在运行时不可访问,但全局变量、类属性和函数的标注会分别存放模块、类和函数的 annotations 特殊属性中。variable annotation – 变量标注对变量或类属性的 annotation。在标注变量或类属性时,还可选择为其...转载 2019-03-31 13:03:23 · 873 阅读 · 0 评论 -
python 多线程与队列
概念以抛异常的形式实现,达到线程结束的目的线程基础使用线程可以把占据长时间的程序中的任务放到后台去处理每个独立的进程有一个程序运行的入口,顺序执行序列和程序的出口线程不能独立运行,必须依存在应用程序中,由应用程序提供多个线程执行控制线程的结束一般依靠线程函数的自然结束也可以在线程函数中调用thread.exit(),抛出SystemExit exception,达到退出...原创 2019-03-06 10:17:00 · 4340 阅读 · 3 评论 -
求n的阶乘后有多少个0
需求n!后面有多少个06!=12345*6=720.720后面有1个0n=10000,求n!。解析因2足够多,简化为每个阶,多少个5的因子,每个记一次0顺序排序n个数,每轮除5,得到累计5的指数(5,25,125…)的个数,后累加js解法n=0 // 计数k=10000 // 初始值// 外层遍历阶数for(k;k&amp;amp;amp;amp;gt;=1;k--){ ...原创 2019-01-23 15:32:18 · 1053 阅读 · 0 评论 -
python进阶指引
python导读python文件编程交互编程开发环境配置windows linux mac数据结构列表列表推导式可以嵌套列表推导不会产生副作用如同php般python的字符串也是一个伪列表正常循环中的临时变量在循环结束后依然存在列表推导本质上是向list函数传入一下映射对象,该对象接收一个lambda函数列表推导式只是一个语法糖而已,map接收函数与...原创 2018-12-10 13:14:22 · 472 阅读 · 0 评论 -
可迭代对象 vs 迭代器 vs 生成器
在使用Python的过程中,很容易混淆如下几个关联的概念:容器(container)可迭代对象(Iterable)迭代器(Iterator)生成器(generator)生成器表达式{list, set, dict} 解析式它们之间的关系如下表所示:dfjfddfd...转载 2018-12-03 23:48:36 · 109 阅读 · 0 评论 -
python 实现strtStr算法
前置知识 for …else 语法 假设有如下代码:for i in range(10): if i == 5: print 'found it! i = %s' % ielse: print 'not found it ...'你期望的结果是,当找到5时打印出:found it! i = 5实际上打印出来的结果为:found ...原创 2018-08-27 13:29:27 · 346 阅读 · 0 评论 -
'/' connot be read: [Errno 13] Permission denied
问题描述:Error accessing /'/' connot be read: [Errno 13] Permission denied: 'D:\\code-base\\python\\py27-example\\python_webserver/'j记下,open打开的是目录而非文件。原创 2018-03-31 12:41:35 · 286 阅读 · 0 评论 -
urlopen实现多线程下载
多线程下载步骤使用 urlopen() 方法打开远程资源获取指定的 URL 对象所指向资源的大小(通过 Content-Length 响应头获取计算每个线程应该下载网络资源的哪个部分(从哪个字节开始,到哪个字节结束)依次创建并启动多个线程来下载网络资源的指定部分相当于多个线程执行体,对同一资源进行分段下载断点下载原理下载之初 生成网络资源具有相同大小的空文件 及 配置文件...原创 2019-05-19 11:57:53 · 434 阅读 · 0 评论 -
网络编程模块指引
计算机网络通信协议组成语义部分 用于决定双方对话的类型语法部分 用于决定双方对话的格式变换规则 用于决定通信双方的应答关系TCP(Transmission Control Protocol)传输控制协议,规定了一种可靠的数据信息传递服务端口16位的整数,用于表示将数据交给哪个通信程序处理在同一台机器中不能有两个程序使用同一个端口,端口号可以为 0~65535公认端...原创 2019-05-19 12:10:10 · 212 阅读 · 0 评论 -
数据库编程之sqlite,mysql最简指引
DB API协议全局变量apilevel 2.0 版本threadsafety 线程安全等级0 则表示线程完全不能共享该模块1 表示该模块具有部分线程安全性,线程可以共享该模块,但不能共享连接3 代表该模块完全是线程安全paramstyleformat 表示在 SQL 语句中使用 Python 标准的格式化字符串代表参数pyformat 表示在 SQL 语句中使...原创 2019-05-17 20:43:18 · 279 阅读 · 1 评论 -
scrapy反爬机制 与 Selenium搭配
反爬虫机制需求背景网站内容使用js动态加载,一般的爬虫无法抓取分析目标站点使用 shell 调试工具动态加载比如请求api得到新数据向动态请求图片api发起请求json.loads(response.text) 函数来加载处理响应的api数据对象小计Spider 到底应该使用 XPath 或 CSS 选择器来提取响应数据,还是使用 JSON,完全取决于目标网...原创 2019-05-22 12:59:51 · 449 阅读 · 0 评论 -
scrapy简记之抓取小说示例
scrapy网络爬虫核心工作通过网络向指定的 URL 发送请求,获取服务器响应内容使用某种技术(如正则表达式、XPath 等)提取页面中我们感兴趣的信息高效地识别响应页面中的链接信息,分析这些链接递归执行此处介绍的第 1、2、3 步使用多线程有效地管理网络通信交互分析正则表达式设计的初衷主要是处理文本信息HTML 文档不仅是文本文档,而且是结构化文档,使用XPath更...原创 2019-05-22 12:52:41 · 384 阅读 · 0 评论 -
scrapy runspider 导出json文件时乱码
scrapy runspider 导出乱码初步判断 ,输入输出编码不一致FEED_EXPORT_ENCODINGDefault: NoneThe encoding to be used for the feedIf unset or set to None (default) it uses UTF-8 for everything except JSON output, whic...原创 2019-05-25 21:44:20 · 436 阅读 · 0 评论 -
python数据可视化简例
数据流数据抓取数据处理,比如清洗,脱敏等数据可视化 ,使用工具库生成图例可视化matplotlibmatplotlib简介Python 2D 绘图库通过 Matplotlib 就可以方便地制作折线图、柱状图、散点图等各种高质量的数据图常用函数或方法指引matplotlib.pyplot.plot 生成折线图legend 图例time, xlabel,ylab...原创 2019-05-21 10:22:31 · 445 阅读 · 0 评论 -
python文档与测试工具
文档 pydoc模块文档编写在函数、类、方法定义后定义一个字符串即可文档查看使用 help() 函数和 doc 属性,在控制器中查看函数、类、方法的文档pydoc模块方便地查看、生成帮助文档python -m pydoc 模块名 在控制台中查看pydoc查看文档组织方式文档说明 模块顶部注释class部分 列出模块所包含的全部类function 全部函数d...原创 2019-05-20 15:34:43 · 184 阅读 · 0 评论 -
python最全邮件收发pop3与smtp
smtplib 发送流程连接服务器 连接 SMTP 服务器,并使用用户名、密码登录服务器创建邮件 创建 EmailMessage 对象,该对象代表邮件本身发送邮件 调用代表与 SMTP 服务器连接的对象的 sendmail() 方法发送邮件模块smtplib模块smtplib.SMTP 得到邮件连接对象email.message.EmailMessage 构建复杂邮件...原创 2019-05-20 11:17:39 · 1223 阅读 · 0 评论 -
cookie管理器(http.cookiejar)
http.cookiejar模块urlopen() 既可发送 GET 请求,也可发送 POST、PUT、DELETE、PATCH 等请求大部分时候,urllib.request 模块可代替 http.client 模块应用场景访问Web应用中被保护的资源维护与服务器之间的 session,借助于 cookie 管理器来实现通过cookie管理session创建 http.c...原创 2019-05-19 13:15:39 · 882 阅读 · 0 评论 -
python2与python3共存 python启动器
最近在使用python,需求不同需要在py2与py3环境下切换。查阅了相关资料,有些同学将两个环境都安装,然后更改环境变量别名,比如python2 或python3。而有些高大上的直接使用conda(或anconda)python环境管理工具。前者需要手动更改python,pip名基本上对原程序进行了修改,而后者使用工具显得有些重。经查阅python3.3+ 已经提供了一个简单的启动器来切...原创 2018-03-30 09:25:55 · 1163 阅读 · 0 评论