#堆排序defheap_sort(arr):root=len(arr)//2-1while(root>=0):heap_adjust(arr,root,len(arr)-1)root=root-1#此时生成的大顶堆,满足每个根节点为子树中最大,因此,之后只需要对最顶的子树进行调整i=len(arr)-1whilei>=0:arr[0],arr[i]=arr[i],arr[0]heap_adjust(arr,0,i-1)i=i-1defheap_adjust
系统 2019-09-27 17:45:50 1970
闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式(而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability)。闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。不同的语言实现闭包的方式不同。Python以函数对象为基础,为闭包这一语法结
系统 2019-09-27 17:45:45 1970
装饰器:概念:把一个函数当作参数传递给一个函数,返回一个替代版的函数本质上就是一个返回函数的函数“在不改变原函数的基础上,给函数增加功能”@符号,那只是一个简短的方式来生成一个被装饰的函数defpaint(func):参数是一个函数definner():print('#########')这个的整个部分就都是装饰器func()returninner@paint这个就是函数戴帽子,也就是装饰器deffunc():print('haveaniceday!!')
系统 2019-09-27 17:45:41 1970
如果某类里没有__init__方法函数,通过类名字创建的实例对象为空,切没有初始化;如果有此方法函数,通常作为类的第一个方法函数,有点像C++等语言里的构造函数。classCa:def__init__(self,v):#注意前后各两个下划线self.name=vdefpr(self):print"a--->",self.nameia=Ca("Jeapedu")#本质调用的是__init__方法函数ia.pr()Ca.pr(ia)输出结果a--->Jeape
系统 2019-09-27 17:38:41 1970
1、python多进程编程背景python中的多进程最大的好处就是充分利用多核cpu的资源,不像python中的多线程,受制于GIL的限制,从而只能进行cpu分配,在python的多进程中,适合于所有的场合,基本上能用多线程的,那么基本上就能用多进程。在进行多进程编程的时候,其实和多线程差不多,在多线程的包threading中,存在一个线程类Thread,在其中有三种方法来创建一个线程,启动线程,其实在多进程编程中,存在一个进程类Process,也可以使用
系统 2019-09-27 17:38:21 1970
最近开发了一个GoogleAnalytics相关的应用,但需要在Windows下部署,结合网上的相关经验,最终选择了apache+mod_wsgi这样的配置。修改python应用复制代码代码如下:Notethatmod_wsgirequiresthattheWSGIapplicationentrypointbecalled'application'.Ifyouwanttocallitsomethingelsethenyouwouldneedtoconfig
系统 2019-09-27 17:38:15 1970
概述模块Pickle实现了对一个Python对象结构的二进制的序列化和反序列化。即当Python程序持续运行一些字符串、列表字典、甚至自定义的类等数据对象,需要持久化存储,即存储在磁盘中,防止运行在内存中,因断电等情况丢失数据。那么Pickle模块就派上用场了,它可以将对象转换为一种可以传输或存储的格式。python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过
系统 2019-09-27 17:56:58 1969
这两天在用python的bottle框架开发后台管理系统,接口约定使用RESTful风格请求,前端使用jqueryajax与接口进行交互,使用POST与GET请求时都正常,而RequestMethod使用PUT或DELETE请求时,直接爆“HTTPError405:MethodNotAllowed”错误。而ajax提交的RequestMethod值DELETE也变成了OPTIONS了。度娘了好多答案,要么说是浏览器不支持,要么说自己重新封装jquery,还
系统 2019-09-27 17:54:55 1969
和之前C++执行LinuxBash命令的方法一样,Python依然支持system调用和popen()函数来执行linuxbash命令。方法一:system调用#仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息importosos.system('ls')方法二:popen()函数importosos.popen('ls').readlines()#这个返回值是一个list方法三:使用模块subprocessimportsubprocesssu
系统 2019-09-27 17:53:51 1969
文章目录Python2在图片上加汉字代码实现Python3在图片上加汉字代码实现遇到的问题python2和python3实现在图片上加汉字,最主要的区别还是内部编码方式不一样导致的,在代码上表现为些许的差别。理解了内部编码原理也就不会遇到这些问题了,以下代码是在WIN10系统上时测好用的。Python2在图片上加汉字代码实现#-*-coding:cp936-*-importcv2importnumpyasnpfromPILimportImage,Image
系统 2019-09-27 17:53:47 1969
Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创建一个“队列”对象importQueueq=Queue.Queue(maxsize=10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。将一个值放入队列中q.put(10)调用队列对
系统 2019-09-27 17:53:36 1969
在学习过程中,把开发过程中重要的一些内容备份一下,下面内容是关于python实现中文繁体和中文简体之间的相互转换的内容,应该是对码农们有所好处。#转换繁体到简体line=Converter('zh-hans').convert(line.decode('utf-8'))line=line.encode('utf-8')#转换简体到繁体line=Converter('zh-hant').convert(line.decode('utf-8'))line=li
系统 2019-09-27 17:52:50 1969
说到流处理,Spark为我们提供了窗口函数,允许在滑动数据窗口上应用转换,常用场景如每五分钟商场人流密度、每分钟流量等等,接下来我们通过画图来了解SparkStreaming的窗口函数如何工作的,处理过程图如下所示:上图中绿色的小框框是一批一批的数据流,虚线框和实线框分别是前一个窗口和后一个窗口,从图中可以看出后一个窗口在前一个窗口基础上移动了两个批次的数据流,而我们真正通过算子操作的数据其实就是窗口内所有的数据流。在代码实现前了解下窗口操作常用的函数有:
系统 2019-09-27 17:52:34 1969
今天接到一个新的任务,要对一个140多M的csv文件进行数据处理,总共有170多万行,尝试了导入本地的MySQL数据库进行查询,结果用Navicat导入直接卡死....估计是XAMPP套装里面全默认配置的MySQL性能不给力,又尝试用R搞一下吧结果发现光加载csv文件就要3分钟左右的时间,相当不给力啊,翻了翻万能的知乎发现了Python下的一个神器包:Pandas(熊猫们?),加载这个140多M的csv文件两秒钟就搞定,后面的分类汇总等操作也都是秒开,太牛
系统 2019-09-27 17:52:33 1969
通过可变参数计算n个数的乘积:代码如下:list=[]defthe_input(count=eval(input("输入乘数的总个数:"))):foriinrange(count):N=eval(input("依次输入乘数:"))list.append(N)print("一共有",count,"个要相乘的数")print("把这些乘放在列表里面:",list)the_input()defget_mul(*num):sum=1forninnum:sum=su
系统 2019-09-27 17:52:31 1969