2.快速排序2.1算法思想快速排序是对冒泡排序的一种改进。通过一次排序(设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,所有比它大的数都放到它右边,这个过程称为一次快速排序)将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序的
系统 2019-09-27 17:49:43 1881
文章作者:Tyan博客:noahsnail.com|CSDN|简书1.引言众所周知,Python语言简单、易学、开源、具有丰富的库,Python的第一个编译器是用C语言实现的。但Python的缺点也非常明显,最让人诟病的就是Python的性能问题。因此,为了提高程序的运行效率,通常会将程序的关键部分使用C或C++重写,编译成动态链接库,然后在Python(CPython)中进行调用。运行环境:Ubuntu16.04、Python2.7、Python3.5。
系统 2019-09-27 17:49:17 1881
这篇快文介绍了使用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 1881
Python虽然语法简单,通俗易懂,但是再简单它也是一门语言,就像一棵大树,总有一些树枝是弯弯绕绕的,让新手看完之后一脸懵逼,今天我们就来说说这几个点,反正我学的时候是很困惑的!01.函数里面的*args1).可变参数这个是什么鬼,尤其是有其他c,c++语言基础的人,看到这个点,一定懵逼了,难道是指针,两个**又是什么鬼?其实这个Python里面的函数入参的几种形式,假如你来设计一个语言,一个函数fun(),里面要传参数进来,要考虑扩展性:变量会有很多种形
系统 2019-09-27 17:47:45 1881
好吧,我承认我是对晚上看到一张合适的票转让但打过电话去说已经被搞走了这件事情感到蛋疼。直接上文件吧。#coding:utf-8'''春运查询火车票转让信息Author:piglei2007@gmail.comDate:2011.01.25'''importreimportosimporttimeimporturlparseimportdatetimeimporttracebackimporturllib2importsocketsocket.setdefa
系统 2019-09-27 17:47:42 1881
最近我必须执行一项从一个需要登录的网站上爬取一些网页的操作。它没有我想象中那么简单,因此我决定为它写一个辅助教程。在本教程中,我们将从我们的bitbucket账户中爬取一个项目列表。教程中的代码可以从我的Github中找到。我们将会按照以下步骤进行:提取登录需要的详细信息执行站点登录爬取所需要的数据在本教程中,我使用了以下包(可以在requirements.txt中找到):requestslxml#步骤一:研究该网站打开登录页面进入以下页面“bitbuck
系统 2019-09-27 17:47:27 1881
sequence序列sequence(序列)是一组有顺序的对象的集合。序列可以包含一个或多个元素,也可以没有任何元素。我们之前所说的基本数据类型,都可以作为序列的对象。对象还可以是另一个序列。序列有两种:list(表)和tuple(元组)。list和tuple的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。List获得list元素的个数:复制代码代码如下:>>>lst=['更新慢','python',5.44,Fa
系统 2019-09-27 17:47:24 1881
很多开发人员在刚开始学Python时,都考虑过像c++那样来实现singleton模式,但后来会发现c++是c++,Python是Python,不能简单的进行模仿。Python中常见的方法是借助global变量,或者class变量来实现单件。本文就介绍以decorator来实现singleton模式的方法。示例代码如下:##-----------------------codebegin-----------------------#-*-coding:u
系统 2019-09-27 17:47:23 1881
定义代码如下importredisimportcontextlibimportpickleimportos,socket,threadingclassRedisLock:def__init__(self,lock_name,host='',port=6379,db=0):self.lock_name=lock_nameself.redis=redis.Redis(connection_pool=redis.ConnectionPool(host=host,
系统 2019-09-27 17:47:19 1881
一、静态方法(staticmethod)和类方法(classmethod)类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属×××互(也就是可以使用类属性)静态方法:让类里的方法直接被类调用,就像正常调用函数一样类方法和静态方法的相同点:都可以直接被类调用,不需要实例化类方法和静态方法的不同点:类方法必须有一个cls参数表示这个类,可以使用类属性静态方法不需要参数绑定方法:分为普通方法和类方法普通方法:默认有一个self对象传进来,并且只能被
系统 2019-09-27 17:46:06 1881