
Python
文章平均质量分 65
czbkzmj
热爱IT
展开
-
python数据结构与算法(14)
快速排序快速排序(英语:Quicksort),⼜称划分交换排序(partition-exchange sort),通过⼀趟排序将要排序的数据分割成独⽴的两部分,其中⼀部分的 所有数据都⽐另外⼀部分的所有数据都要⼩,然后再按此⽅法对这两部分数 据分别进⾏快速排序,整个排序过程可以递归进⾏,以此达到整个数据变成 有序序列。步骤为:从数列中挑出⼀个元素,称为"基准"(pivot), 2. 重新排...原创 2018-11-29 15:18:11 · 128 阅读 · 0 评论 -
python数据结构与算法(1)
数据结构与算法(Python) Why?我们举⼀个可能不太恰当的例⼦:如果将开发程序的过程⽐喻为作战,我们码农便是指挥作战的将军,⽽我们 所写的代码便是⼠兵和武器。那么数据结构和算法是什么?答⽈:兵法!我们可以不看兵法在战场上⾁搏,如此,可能会胜利,可能会失败。即使胜 利,可能也会付出巨⼤的代价。我们写程序亦然:没有看过数据结构和算 法,有时⾯对问题可能会没有任何思路,不知如何下⼿去解决;...原创 2018-11-27 15:56:30 · 249 阅读 · 0 评论 -
python数据结构与算法(2)
算法效率衡量执⾏时间反应算法效率对于同⼀问题,我们给出了两种解决算法,在两种算法的实现中,我们对程 序执⾏的时间进⾏了测算,发现两段程序执⾏的时间相差悬殊(214.583347 秒相⽐于0.182897秒),由此我们可以得出结论:实现算法程序的执⾏时间 可以反应出算法的效率,即算法的优劣。单靠时间值绝对可信吗?假设我们将第⼆次尝试的算法程序运⾏在⼀台配置古⽼性能低下的计算机 中,情况会如何...原创 2018-11-27 16:01:08 · 140 阅读 · 0 评论 -
python数据结构与算法(3)
Python内置类型性能分析 timeit模块timeit模块可以⽤来测试⼀⼩段Python代码的执⾏速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)Timer是测量⼩段代码执⾏速度的类。stmt参数是要测试的代码语句(statment);setup参数是运⾏代码时需要的设置;t...原创 2018-11-27 16:23:18 · 148 阅读 · 0 评论 -
python数据结构与算法(4)
数据结构我们如何⽤Python中的类型来保存⼀个班的学⽣信息? 如果想要快速 的通过学⽣姓名获取其信息呢?实际上当我们在思考这个问题的时候,我们已经⽤到了数据结构。列表和字 典都可以存储⼀个班的学⽣信息,但是想要在列表中获取⼀名同学的信息 时,就要遍历这个列表,其时间复杂度为O(n),⽽使⽤字典存储时,可将学 ⽣姓名作为字典的键,学⽣信息作为值,进⽽查询时不需要遍历便可快速获 取到学⽣信息,其...原创 2018-11-27 16:26:04 · 181 阅读 · 0 评论 -
python数据结构与算法(5)
顺序表的结构与实现顺序表的结构⼀个顺序表的完整信息包括两部分,⼀部分是表中的元素集合,另⼀部分是 为实现正确操作⽽需记录的信息,即有关表的整体情况的信息,这部分信息 主要包括元素存储区的容量和当前表中已有的元素个数两项。顺序表的两种基本实现⽅式 图a为⼀体式结构,存储表信息的单元与元素存储区以连续的⽅式安排在⼀块 存储区⾥,两部分数据的整体形成⼀个完整的顺序表对象。⼀体式结构整体性强...原创 2018-11-27 16:28:22 · 168 阅读 · 0 评论 -
python数据结构与算法(6)
Python中的顺序表Python中的list和tuple两种类型采⽤了顺序表的实现技术,具有前⾯讨论的顺 序表的所有性质。tuple是不可变类型,即不变的顺序表,因此不⽀持改变其内部状态的任何操 作,⽽其他⽅⾯,则与list的性质类似。list的基本实现技术Python标准类型list就是⼀种元素个数可变的线性表,可以加⼊和删除元素, 并在各种操作中维持已有元素的顺序(即保序),⽽且还具...原创 2018-11-28 14:17:58 · 128 阅读 · 0 评论 -
python数据结构与算法(7)
单链表的操作is_empty() 链表是否为空 length() 链表⻓度 travel() 遍历整个链表add(item) 链表头部添加元素 append(item) 链表尾部添加元素 insert(pos, item) 指定位置添加元素 remove(item) 删除节点 search(item) 查找节点是否存在单链表的实现class SingleLinkList(objec...原创 2018-11-28 14:59:33 · 127 阅读 · 0 评论 -
python数据结构与算法(8)
链表与顺序表的对⽐链表失去了顺序表随机读取的优点,同时链表由于增加了结点的指针域,空 间开销⽐较⼤,但对存储空间的使⽤要相对灵活。链表与顺序表的各种操作复杂度如下所示:注意虽然表⾯看起来复杂度都是 O(n),但是链表和顺序表在插⼊和删除时进 ⾏的是完全不同的操作。链表的主要耗时操作是遍历查找,删除和插⼊操作 本身的复杂度是O(1)。顺序表查找很快,主要耗时的操作是拷⻉覆盖。因为 除了⽬标元素...原创 2018-11-28 15:00:40 · 135 阅读 · 0 评论 -
python数据结构与算法(9)
指定位置插⼊节点def insert(self, pos, item): """在指定位置添加节点""" if pos <= 0: self.add(item) ...原创 2018-11-28 15:01:52 · 129 阅读 · 0 评论 -
python数据结构与算法(20)
⼆叉树的遍历树的遍历是树的⼀种重要的运算。所谓遍历是指对树中所有结点的信息的访 问,即依次对树中每个结点访问⼀次且仅访问⼀次,我们把这种对所有节点 的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍 历和⼴度优先遍历,深度优先⼀般⽤递归,⼴度优先⼀般⽤队列。⼀般情况下 能⽤递归实现的算法⼤部分也能⽤堆栈来实现。深度优先遍历对于⼀颗⼆叉树,深度优先搜索(Depth F...原创 2018-12-04 15:54:49 · 166 阅读 · 0 评论 -
python数据结构与算法(19)
⼆叉树⼆叉树的基本概念⼆叉树是每个节点最多有两个⼦树的树结构。通常⼦树被称作“左⼦树”(left subtree)和“右⼦树”(right subtree)⼆叉树的性质(特性)性质1: 在⼆叉树的第i层上⾄多有2^(i-1)个结点(i>0) 性质2: 深度为k的⼆叉树⾄多有2^k - 1个结点(k>0) 性质3: 对于任意⼀棵⼆叉树,如果其叶结点数为N0,⽽度数为2的结点总数 ...原创 2018-12-04 15:51:25 · 242 阅读 · 0 评论 -
python爬虫笔记-day4
验证码的识别url不变,验证码不变请求验证码的地址,获得相应,识别url不变,验证码会变思路:对方服务器返回验证码的时候,会和每个用户的信息和验证码进行一个对应,之后,在用户发送post请求的时候,会对比post请求中法的验证码和当前用户真正的存储在服务器端的验证码是否相同1.实例化session2.使用seesion请求登录页面,获取验证码的地址3.使用session请求验证码,...原创 2018-11-26 16:55:36 · 162 阅读 · 0 评论 -
python爬虫笔记-day5
mongodb插入数据db.collecion.insert({}) 插入数据,_id存在就报错 db.collection.save({}) 插入数据,_id存在会更新mongodb的更新操作db.test1000.update({name:"xiaowang"},{name:"xiaozhao"})把name为xiaowang的数据替换为{name:"xiaozhao"}db.t...原创 2018-11-26 16:58:48 · 166 阅读 · 0 评论 -
python爬虫笔记-day6
mongodb mysql redis的区别和使用场景mysql是关系型数据库,支持事物mongodb,redis非关系型数据库,不支持事物mysql,mongodb,redis的使用根据如何方便进行选择希望速度快的时候,选择mongodb或者是redis数据量过大的时候,选择频繁使用的数据存入redis,其他的存入mongodbmongodb不用提前建表建数据库,使用方便,字段数量不...原创 2018-11-26 17:00:31 · 169 阅读 · 0 评论 -
python爬虫笔记-day7
crawlspider的使用常见爬虫 scrapy genspider -t crawl 爬虫名 allow_domain指定start_url,对应的响应会进过rules提取url地址完善rules,添加Rule Rule(LinkExtractor(allow=r'/web/site0/tab5240/info\d+.htm'), callback='parse_item'),注意点:...原创 2018-11-26 17:03:57 · 253 阅读 · 0 评论 -
python爬虫笔记-day8
爬虫项目项目名字request+selenium爬虫项目周期项目介绍爬了XXXXX,XXX,XXX,等网站,获取网站上的XXX,XXX,XXX,数据,每个月定时抓取XXX数据,使用该数据实现了XXX,XXX,XX,开发环境linux+pycharm+requests+mongodb+redis+crontab+scrapy_redis+ scarpy + mysql+gevent...原创 2018-11-26 17:06:00 · 258 阅读 · 0 评论 -
python数据结构与算法(15)
选择排序选择排序(Selection sort)是⼀种简单直观的排序算法。它的⼯作原理如 下。⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位 置,然后,再从剩余未排序元素中继续寻找最⼩(⼤)元素,然后放到已排 序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置 上,则它不会被移动。选择排序每次交换⼀对元素,它们当中⾄少...原创 2018-12-04 15:34:13 · 146 阅读 · 0 评论 -
python数据结构与算法(16)
时间复杂度最优时间复杂度:O(nlogn) 最坏时间复杂度:O(n ) 稳定性:不稳定从⼀开始快速排序平均需要花费O(n log n)时间的描述并不明显。但是不难观 察到的是分区运算,数组的元素都会在每次循环中⾛访过⼀次,使⽤O(n)的 时间。在使⽤结合(concatenation)的版本中,这项运算也是O(n)。在最好的情况,每次我们运⾏⼀次分区,我们会把⼀个数列分为两个⼏近相 等的⽚段。...原创 2018-12-04 15:39:45 · 190 阅读 · 0 评论 -
python数据结构与算法(17)
归并排序归并排序是采⽤分治法的⼀个⾮常典型的应⽤。归并排序的思想就是先递归 分解数组,再合并数组。将数组分解最⼩之后,然后合并两个有序数组,基本思路是⽐较两个数组的 最前⾯的数,谁⼩就先取谁,取了后相应的指针就往后移⼀位。然后再⽐ 较,直⾄⼀个数组为空,最后把另⼀个数组的剩余部分复制过来即可。归并排序的分析6 5 3 1 8 7 2 4def merge_sort(alist): ...原创 2018-12-04 15:42:38 · 394 阅读 · 0 评论 -
python数据结构与算法(18)
树与树算法树的概念树(英语:tree)是⼀种抽象数据类型(ADT)或是实作这种抽象数据类型 的数据结构,⽤来模拟具有树状结构性质的数据集合。它是由n(n>=1)个 有限节点组成⼀个具有层次关系的集合。把它叫做“树”是因为它看起来像⼀ 棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。它具有以下的特点:每个节点有零个或多个⼦节点; 没有⽗节点的节点称为根节点; 每⼀个⾮根节点有且只有⼀个⽗节点...原创 2018-12-04 15:49:21 · 153 阅读 · 0 评论 -
python数据结构与算法(10)
栈栈(stack),有些地⽅称为堆栈,是⼀种容器,可存⼊数据元素、访问元 素、删除元素,它的特点在于只能允许在容器的⼀端(称为栈顶端指标,英 语:top)进⾏加⼊数据(英语:push)和输出数据(英语:pop)的运算。 没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存⼊的 那个元素,确定了⼀种默认的访问顺序。由于栈数据结构只允许在⼀端进⾏操作,因⽽按照后进先出(LIFO, Las...原创 2018-11-28 15:02:29 · 134 阅读 · 0 评论 -
python前端jQuery进阶
知识点预习1.jQuery特殊效果2.链式调用 3.属性操作 4.jQuery循环 5.jQuery事件01- jQuery的特殊效果//1. 淡入淡出 fade// $(".box").fadeIn(); // $(".box").fadeOut();// $(".box").fadeToggle();//2. 显示隐藏// $(".box").hide();// $(...原创 2018-12-07 16:37:55 · 197 阅读 · 0 评论 -
python前端JavaScript高级
知识点预习1.数组定义及常用操作方法2.js循环语句3.数组去重4.数组数据放入到界面5.字符串常用方法6.js调试程序方法7.全局变量和局部变量8.js中的定时器及实现动画01-数组的定义// 1.实例化对象var aOneArray = new Array(1,2,3,"a","b");//2.快捷创建var aTwoArray = [1,2,3,"d","f"...原创 2018-12-06 15:23:39 · 122 阅读 · 0 评论 -
python之Linux基础(十二)
pycharm的集成vim 1. 基本使⽤激活码BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lI`参考⽹址http://blog.youkuaiyun.com/fx677588/article/details/58164902 pycharm的vim插...原创 2018-12-14 16:23:09 · 182 阅读 · 0 评论 -
python前端jQuery入门
知识点预习1.jQuery的加载2.jQuery选择器 3.jQuery的click事件 4.jQuery的样式操作 5.jQuery动画01- 封闭函数作用:避免在修改他人代码时出现 方法同名替换的情况想让一个函数直接执行用封闭函数避免同名函数覆盖避免同名变量覆盖02- jQuery的简介jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优...原创 2018-12-07 16:34:40 · 1300 阅读 · 1 评论 -
python前端jQuery综合应用
传智播客知识点预习 1.幻灯片的制作2.json数据格式及ajax 01- 轮播图-获取相关元素 [mw_shl_code=applescript,true]var $slide = $('.slide'), // 轮播区域的div $slideList = $('.slide_list'), // 轮播列表 $lis = $('.slide_...原创 2018-12-10 16:36:16 · 3699 阅读 · 3 评论 -
python之Linux基础
操作系统(科普章节)⽬标了解操作系统及作⽤操作系统(Operation System,OS)1.1 操作系统的作⽤是现代计算机系统中 最基本和最重要 的系统软件 是 配置在计算机硬件上的第⼀层软件,是对硬件系统的⾸次扩展 主要作⽤是管理好硬件设备,并为⽤户和应⽤程序提供⼀个简单的接⼝,以便于使⽤ ⽽其他的诸如编译程序、数据库管理系统,以及⼤量的应⽤软件,都直接依赖于操作 系统的...原创 2018-12-10 16:43:52 · 247 阅读 · 1 评论 -
python之Linux基础二
2.1Linux内核版本内核(kernel)是系统的⼼脏,是运⾏程序和管理像磁盘和打印机等硬件设备的核⼼ 程序,它提供了⼀个在裸设备与应⽤程序间的抽象层 Linux内核版本⼜分为稳定版 和开发版,两种版本是相互关联,相互循环 稳定版:具有⼯业级强度,可以⼴泛地应⽤和部署。新的稳定版相对于较旧的只 是修正⼀些bug或加⼊⼀些新的驱动程序 开发版:由于要试验各种解决⽅案,所以变化很快 内核源码⽹址:...原创 2018-12-10 16:52:10 · 321 阅读 · 0 评论 -
python之Linux基础(三)
Ubuntu 图形界⾯⼊⻔⽬标熟悉 Ubuntu 图形界⾯的基本使⽤Ubuntu 的任务栏 窗⼝操作按钮常⽤ Linux 命令的基本使⽤⽬标理解学习 Linux 终端命令的原因 常⽤ Linux 命令体验学习 Linux 终端命令的原因很多⼈可能在电视或电影中看到过类似的场景,⿊客⾯对⼀个⿊⾊的屏幕,上⾯飘着 密密麻麻的字符,梆梆⼀顿敲,就完成了窃取资料的任务。 Lin...原创 2018-12-11 11:23:05 · 175 阅读 · 0 评论 -
python之Linux基础(四)
Linux 终端命令格式⽬标了解终端命令格式 知道如何查阅终端命令帮助信息终端命令格式 [mw_shl_code=applescript,true]command [-options] [parameter] [/mw_shl_code] 说明: command :命令名,相应功能的英⽂单词或单词的缩写 [-options] :选项,可⽤来对命令进⾏控制,也可以省略 paramet...原创 2018-12-11 11:33:43 · 393 阅读 · 0 评论 -
python之Linux基础(五)
清屏:clearclear作⽤为清除终端上的显示(类似于DOS的cls清屏功能),也可使⽤快捷键:Ctrl + l ( “l” 为字⺟ )。3> 切换⼯作⽬录: cd在使⽤Unix/Linux的时候,经常需要更换⼯作⽬录。cd命令可以帮助⽤户切换⼯作⽬ 录。 Linux所有的⽬录和⽂件名⼤⼩写敏感 cd后⾯可跟绝对路径,也可以跟相对路径。如果省略⽬录,则默认切换到当前⽤户的主⽬ 录。...原创 2018-12-11 11:42:43 · 210 阅读 · 0 评论 -
python前端JavaScript入门及进阶
知识点预习1、js基本使用2、js变量定义及类型3、js函数定义及预解析4、js获取标签5、js读写标签属性00-JavaScript简介JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互。 JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( A...原创 2018-12-06 15:22:35 · 186 阅读 · 0 评论 -
python前端HTML和CSS高级
知识点预习1.表格基本使用2.选择器权重计算3.背景图片属性4.精灵图5.天天生鲜案例01-表格(table)基本使用table: tr row 行数 td description 内容 th head ;居中 加粗 /* 3.合并边框 */ border-collapse: collapse;...原创 2018-12-06 15:21:36 · 182 阅读 · 0 评论 -
python前端jQuery高级
知识点预习1、jQuery事件冒泡2、事件委托 3、元素节点操作 4、正则表达式及表单验证实例01- submit事件//监听 提交的事件$("form").submit(function (abc) { //阻止系统的默认行为 // abc.preventDefault(); return false;})事件冒泡的原理在一个对象上触发某类事件(比如单击...原创 2018-12-07 16:42:38 · 905 阅读 · 0 评论 -
python前端HTML和CSS入门
前端阶段课程介绍1 ~ 4 : HTML及CSS5 ~ 6 : JavaScript 7 ~ 10 : jQuery00-知识点预习1、HTML基本结构2、HTML的常用标签3、HTML布局入门4、CSS概述5、CSS书写方式6、CSS常用选择器7、CSS常用属性01-什么是HTML?HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言: HyperTe...原创 2018-12-05 15:57:26 · 314 阅读 · 0 评论 -
python前端HTML和CSS进阶
知识点预习1.列表2.选择器3.CSS的文本样式属性4.元素溢出5.盒子模型6.margin负值技巧7.垂直外边距合并8.margin-top塌陷问题01- 列表无序列表 ul>li unorder list清除列表前面的标识 list-sytle:none;列表默认有外边框和内边距02- CSS选择器02/* 1.ID选择器 id是唯一的; 配合js来操...原创 2018-12-05 15:58:15 · 132 阅读 · 0 评论 -
python前端HTML和CSS进阶-2
知识点预习1.表单2.元素类型3.浮动4.定位01- 表单form标签 表单用来提交数据action 要提交的网址,默认是当前网页method 请求 提交方式默认get请求 post请求切换请求方式时注意缓存问题label标签for属性如果设置的值和 input标签中设置的id属性值一样就可以实现点击label让对应的input成为焦点输入框的两个常用属性:...原创 2018-12-05 15:58:56 · 170 阅读 · 0 评论 -
python之Linux基础(七)
⽂本搜索:grepLinux系统中grep命令是⼀种强⼤的⽂本搜索⼯具,grep允许对⽂本⽂件进⾏模式查找。 如果找到匹配模式, grep打印包含模式的所有⾏。grep⼀般格式为:grep [-选项] ‘搜索内容串’⽂件名在grep命令中输⼊字符串参数时,最好引号或双引号括起来。例如:grep 'a' 1.txt常⽤选项说明:grep搜索内容串可以是正则表达式。正则表达式是...原创 2018-12-12 14:12:05 · 131 阅读 · 0 评论 -
python之Linux基础(八)
⽂件压缩解压:bzip2tar与bzip2命令结合使⽤实现⽂件打包、压缩(⽤法和gzip⼀样)。tar只负责打包⽂件,但不压缩,⽤bzip2压缩tar打包后的⽂件,其扩展名⼀般⽤ xxxx.tar.gz2。在tar命令中增加⼀个选项(-j)可以调⽤bzip2实现了⼀个压缩的功能,实⾏⼀个先打包后压 缩的过程。压缩⽤法:tar -jcvf 压缩包包名 ⽂件...(tar jcvf bk.ta...原创 2018-12-12 14:17:09 · 158 阅读 · 0 评论