![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 54
Marchanges
这个作者很懒,什么都没留下…
展开
-
Python数据结构与算法(一)--算法和时间复杂度
最近下班一直在学习和总结Python,最近在整理数据结构和算法这方面的知识,虽然大学的时候也学过数据结构(c语言版本),但是工作这几年一直在做前端所以,这方面的知识也忘了差不多,所以就想整理一下,方便以后自己复习。下面会说几段代码,是想说一下几个概念,1>大O表示法,它主要是用来表示算法效率的一个衡量方法,也叫时间复杂度的表示方法。2> 算法的特征。3>Python内置性能分...原创 2018-09-17 19:22:53 · 378 阅读 · 0 评论 -
urllib2.URLError: urlopen error [Errno 111] Connection refused
记录个还没解决的问题。下面爬虫代码是可以执行的,但是在我的Ubuntu的虚拟中刚开始是可以运行的,但是,后来不知道改了什么东西,用urllib2写的爬虫和用scrapy 的爬虫代码都不能运行了!!。import urllib2import reclass Spider: def __init__(self): self.page = 1 self...原创 2018-11-29 09:56:03 · 26199 阅读 · 2 评论 -
Ubuntu下virtualenv 安装
1、安装 vitrualenv。sudo pip install virtualenv2、在 Ubuntu 中以及其衍生系统中执行如下命令安装。sudo apt-get install python-virtualenv3、找个存放目录,创建虚拟环境。virtualenv my_env这个时候里面的虚拟环境里面的python版本是主机里面python 的版本,如果想指...原创 2018-11-22 17:07:21 · 406 阅读 · 1 评论 -
Python生成器
在Python中,⼀边循环⼀边计算的机制,称为⽣成器:generator。比如在创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素的话,那后面绝大多数元素占用的空间都白白的浪费,所以如果列表元素可以按照某种算法推算出来,那么我们在循环的过程中不断推算出后续的元素。创建生成器方法1:只要把一个列表生成式的[] 改成()。L = [ x*2 for...原创 2018-10-15 19:58:09 · 104 阅读 · 0 评论 -
Python二叉树遍历
树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一、广度优先遍历(层次遍历)从树的root开始,从上到下从从左到右遍历整个树的节点二、深度优先遍历对于一颗二叉树,深度...原创 2018-09-30 11:34:45 · 335 阅读 · 0 评论 -
Python 二叉树实现
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的节点表示以及树的创建1、通过使用Node类中定义三个属性,分别为elem本身的值,还有lchild左孩子和rchild右孩子2、树的创建,创建一个树的类,并给一个root根节点,一开始为空,随后添加节点class Node(object):...原创 2018-09-30 11:27:56 · 696 阅读 · 0 评论 -
python二分法查找
常见的搜索方法:顺序查找、二分法查找、二叉树查找、哈希查找。二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记...原创 2018-09-30 11:19:08 · 1841 阅读 · 0 评论 -
Python装饰器(二)
想再说一下装饰器的使用和原理。之前已经说了装饰器的概念,和语法,这里想再进一步说一下几个装饰器的例子。例子一:def makBlod(fn): def wrappen(): return "<b>" + fn() + "</b>" return wrappendef makItalic(fn): def wrappe...原创 2018-10-15 19:13:03 · 120 阅读 · 0 评论 -
正则总结(Python)
正则大家都不陌生,工作中一定会接触到。最近在Python中用的了正则,所以顺便整理一下。一、re模块的使用#导入 re模块import re# 使用match方法进行匹配操作result = re.match(正则表达式, 要匹配的字符串)# 如果上一步匹配到数据的话,可以使用group方法来提取数据result.group()re.match 是用来进行正则匹配检查的...原创 2018-09-29 18:37:38 · 110 阅读 · 0 评论 -
Python装饰器(一)
要学习装饰器,首先要知道闭包的东西。不过这里不再说闭包的东西了。我们假设一个场景:假如在公司有多个开发部门,A、B....。现在A部门开发出了一个功能,然后其他部门去调用A部门开发的功能。比如: 如下f1、f2...,是由A部门来开发,然后其他部门使用。def f1(): print('f1')def f2(): print("f2")...然后有一天根据...原创 2018-10-12 18:40:49 · 198 阅读 · 0 评论 -
【Python学习笔记】Python深拷贝和浅拷贝
Python中copy模块里面常用的两个方法copy.copy() 和copy.deepcopy()也就是浅拷贝和深拷贝1、copy.deepcopy() 深拷贝,是对于一个对象所有层次的拷贝。2、copy.copy()浅拷贝,一般来说是对最顶层对象的拷贝。另外浅拷贝对不可变类型(如:元组)和可变类型(如:列表)的copy不同。深拷贝import copya = [11, 2...原创 2018-10-11 11:32:38 · 175 阅读 · 0 评论 -
Python排序算法(二) 快速排序、希尔排序、归并排序
这篇文章有的排序算法是:快速排序、希尔排序、归并排序。快速排序'''快速排序'''def quick_sort(aList, first, last): if first >= last: return min_val = aList[first] low_index = first hight_index = last...原创 2018-09-19 13:59:12 · 191 阅读 · 0 评论 -
Python排序算法(一)冒泡排序、选择排序、插入排序
今天总结一下Python中的排序算法。这篇文章有的排序算法是:冒泡排序、选择排序、插入排序。冒泡排序先看一下代码。'''冒泡排序'''def bubble_sort(aList): n = len(aList) for i in range(0, n - 1): for j in range(0, n - i - 1): ...原创 2018-09-18 11:16:26 · 5445 阅读 · 4 评论 -
Python数据结构与算法(六)--栈和队列
栈和队列栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存入的那个元素,确定了一种默认的访问顺序。由于栈数据结构只能在一端进行操作,因而按照后进先出(LIFO, Las...原创 2018-09-17 21:06:12 · 207 阅读 · 0 评论 -
Python数据结构与算法(五)--链表
链表链表的定义:链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。单项链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表...原创 2018-09-17 20:57:32 · 222 阅读 · 0 评论 -
Python数据结构与算法(四)--顺序表
顺序表在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。根据线性表的实际存储方式,分为两种实现模型:顺序表,将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示。链表,将元素存放在通过链接构造起来的一系列存储块中。顺...原创 2018-09-17 20:46:35 · 412 阅读 · 0 评论 -
Python数据结构与算法(三)--数据结构的概念
上一章我们看Python内置的模块可以测试代码的时间,有的代码执行时间短有的执行时间长,就是说效率不一样。如果上面不明显的话,大家看下面两个方法。append() 和 insert(0)import timeitdef t6(): li = [] for i in range(10000): li.append(i)def t7(): li ...原创 2018-09-17 20:27:36 · 158 阅读 · 0 评论 -
Python数据结构与算法(二)--timeit模块
Python内置性能分析,timeit模块timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置...原创 2018-09-17 19:56:57 · 201 阅读 · 0 评论 -
Python 文件操作 'w+' 和 'wb'的区别
在文件上传的时候遇到个问题,就是 'w+' 和 'wb' 在文件上传的时候是否回车。根据项目的实景情况模拟一下区别。首先说一下 'w+' 和 'wb' 的区别 。'w+' 是文本写入,'wb'是字节写入。看代码。首先在window 操作系统下。1.字节# utf-8# 模拟上传的文件内容readFile = b'hello\r\nwolrd'temp = open(...原创 2018-12-26 16:56:47 · 20526 阅读 · 2 评论