
python编程
文章平均质量分 68
wuChen4646
专注云计算领域
展开
-
python实现经典排序算法
题目:分别实现冒泡排序,插入排序,快速排序的算法,并使用列表测试#冒泡排序实现def bubbleSort(data): if len(data) < 2: return data for i in range(0, len(data)-1): m = i for j in range(i原创 2014-12-13 17:34:07 · 715 阅读 · 0 评论 -
用Psyco让Python运行得像C一样快
ython 的设计在很多方面都类似于 Java 的设计。两者都利用了解释专门的伪编译字节码的虚拟机。JVM 比 Python 更高级的一个方面在于优化了字节码的执行。Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。只需极少量的额外编程,通常就可以使用 Psyco 将 Python 代码的速度提高转载 2015-02-04 15:05:16 · 640 阅读 · 0 评论 -
Python性能测试方法
对代码优化的前提是需要了解性能瓶颈在什么地方,程序运行的主要时间是消耗在哪里,对于比较复杂的代码可以借助一些工具来定位。本文主要讨论如何在项目中测试Python瓶颈函数,对于模块化程度比较好的项目运用如下方法测试会得到比较好的效果 (1)利用profile分析相关的独立模块 利用profile分析相关的独立模块,python内置了丰富的性能分析工具,profile,cProfil原创 2015-02-01 20:16:59 · 8756 阅读 · 0 评论 -
python编写shell脚本详细讲解
今天同事叫我编写一个shell脚本。话说,虽然我受*nix的影响甚深,但是对于*nix 里随处可见的sh脚本却是讨厌之极。为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没有任何美感可言。其次是sh脚本的处理能力还是比较弱的,在文本处理、XML处理还有网络编程方面,基本上都要借助于perl,awk等一堆程序。我对这些程序也是不大喜欢的,况且学习第三方软件总要时间,还不转载 2015-01-03 14:03:13 · 11666 阅读 · 0 评论 -
Python性能优化的20条建议
优化算法时间复杂度算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。减少冗余数据如用上三角或下三角的方式去保存一个大的对称矩阵。在0元素占大多数的矩阵里使用稀疏矩阵表示。合转载 2015-03-05 16:47:41 · 454 阅读 · 0 评论 -
Python 迭代器 生成器
迭代器迭代器是带有next方法的简单对象。迭代器能在一系列的值上进行迭代,当没有值迭代的时候,next方法就会引发StopIteration异常,可迭代对象有一个返回迭代器的__iter__方法,它能像序列一样在for循环中使用1.创建迭代器假如一个函数可以一个接一个地计算值,那么与使用列表相比,使用迭代器更通用,简单,高效。迭代器不是一次性获取所有值class Fibs:原创 2015-03-09 10:42:37 · 689 阅读 · 1 评论 -
AST 模块:用 Python 修改 Python 代码
本文介绍如何利用Python的AST模块得到或者修改python虚拟机编译过程中生成的语法树CPython 的编译过程在开始之前,我们应该先看看 CPython 的编译过程,这个过程在 PEP 339 中有详细的描述。当然,在读这篇文章的时候,你并不需要对这个步骤有很深入的理解,不过这可以帮助你对整个过程有一个大体的了解。首先,编译器会根据源代码生成一棵语法分析树 (P转载 2015-04-02 14:58:10 · 6922 阅读 · 1 评论 -
理解python中的装饰器
python的函数是对象要理解装饰器,首先,你必须明白,在python中,函数是对象. 这很重要.简单例子来理解为什么def shout(word="yes"): return word.capitalize()+"!"print shout()# outputs : 'Yes!'# 作为一个对象,你可以讲函数赋值给另一个对象scream = shout#转载 2015-04-01 21:29:00 · 602 阅读 · 0 评论 -
Python Decorator
Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里转载 2015-04-15 15:10:39 · 2111 阅读 · 0 评论 -
Python 重要标准库1
1.fileinput模块函数介绍1.input([files[,inplace[,backup]])这是最重要的一个函数,便于遍历多个输入流中的行 你能将inplace参数设置为真值进行原地处理,再进行原地处理的时候可选的backup参数将文件名扩展备份到通过原始文件创建的备份文件中例子:写一个脚本实现把test1.txt文件中的Python替换#!/usr/bin/原创 2015-03-10 10:45:35 · 685 阅读 · 0 评论 -
用python实现堆栈和队列
一,利用python列表实现堆栈 堆栈是一个后进先出的数据结构,其工作方式就像一堆汽车排队进去一个死胡同里面,最先进去的一定是最后出来。 我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现栈的出栈pop和入栈push的操作,list.append(obj)意思是向列表添加一个对象obj,list.pop(index=-1)意思是原创 2014-10-31 10:01:11 · 18233 阅读 · 0 评论 -
Python核心编程读书笔记
本次笔记针对原书第6章节 列表VS元组列表和元组是非常相近的容器类型,它们除了一个用园括号,一个用方括号之外似乎看起来没有区别,但是功能上元组和列表有一个很重要的区别,元组是一种不可变类型,它能够做一些列表不能做的事比如做一个字典的key.最好使用不可变类型变量的一个情况是,如果你在维护一些敏感数据,并且需要把这些数据传递给一个并不了解的函数,这时使用元组会安全很多。而当需要原创 2015-02-05 11:19:11 · 756 阅读 · 1 评论 -
python performance
1.其他版本2.概述:优化需要优化的3.选择正确的数据结构4.排序5.字符串连接6.循环7.避免“点”...8.局部变量9.初始化字典元素10.import语句的消耗11.数据聚合12.少做13.Python不是C14.使用xrange来代替range15.执行时绑定函数16.性能分析代码17.性能分析18.cProfile和Hotshot模块19.Trace模块20.可视化性能评估结果这篇文章提翻译 2015-02-05 10:54:48 · 1420 阅读 · 0 评论 -
利用python列表实现单链表
利用python列表实现单链表原创 2014-10-31 10:42:46 · 2812 阅读 · 0 评论 -
python 优化指南
1、使用生成器和列表解析一个普遍被忽略的内存优化是生成器的使用。生成器让我们创建一个函数一次只返回一条记录,而不是一次返回所有的记录,如果你正在使用python2.x,这就是你为啥使用xrange替代range或者使用ifilter替代filter的原因。一个很好地例子就是创建一个很大的列表并将它们拼合在一起。[python] view plaincopyi转载 2014-11-07 21:36:07 · 668 阅读 · 0 评论 -
Python 实现 淘宝秒杀 聚划算 自动提醒 源码
说明本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(URL自己定义)。同时还可以通过命令行参数自定义刷新间隔时间(默认0.1s)和监控持续时间(默认1800s)。源码 # encoding: utf-8 ''''' @author: Techzero @email: techzero@1原创 2014-12-01 08:56:17 · 1091 阅读 · 0 评论 -
C、python 、java内存管理区别
一、C一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量转载 2014-12-07 10:34:11 · 3329 阅读 · 1 评论 -
Python import机制详解
一 module通常模块为一个文件,直接使用import来导入就好了。可以作为module的文件类型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。二 package通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如转载 2014-12-08 21:44:37 · 2553 阅读 · 0 评论 -
python性能优化指南
1、使用生成器和列表解析一个普遍被忽略的内存优化是生成器的使用。生成器让我们创建一个函数一次只返回一条记录,而不是一次返回所有的记录,如果你正在使用python2.x,这就是你为啥使用xrange替代range或者使用ifilter替代filter的原因。一个很好地例子就是创建一个很大的列表并将它们拼合在一起。[python] view plaincopy转载 2014-12-09 16:01:37 · 637 阅读 · 0 评论 -
Python 扩展技术总结
一般来说,所有能被整合或导入到其他Python脚本中的代码,都可以称为扩展。你可以用纯Python来写扩展,也可以用C/C++之类的编译型语言来写扩展,甚至可以用java,C都可以来写 python扩展。Python的一大特点是,扩展和解释器之间的交互方式域普通的Python模块完全一样,Python的模块导入机制非常抽象,抽象到让使用模块的代码无法了解到模块的具体实现细节。 P原创 2014-12-09 16:05:48 · 6156 阅读 · 1 评论 -
python的未来-pypy
PyPy是一个虚拟机项目,主要分为两部分:一个python的实现和 一个编译器 PyPy的第一部分: 用Python实现的Python 其实这么说并不准确,准确得说应该是用rPython实现的Python,rPython是Python的一个子集,虽然rPython不是完整的Python,但用rPython写的这个Python实现却是可以解释完整的Python语言。原创 2014-11-08 14:27:56 · 3790 阅读 · 0 评论 -
测试Python性能瓶颈
[python]用profile协助程序性能优化 上帝说:“选择了脚本,就不要考虑性能。”我是很支持这句话的,使用脚本要的就是开发速度、良好的扩展性以及可维护性。可惜到了最后,我们的程序难免会运行得太慢,我们的客户不能忍受,这时候,我们就不得不考虑对代码的性能进行优化了。 程序运行慢的原因有很多,比如存在太多的劣化代码(如在程序中存在大量的“.”操作符),但真转载 2014-12-11 16:45:50 · 3071 阅读 · 0 评论 -
神奇的Python ctypes模块
利用python的ctypes模块可以在python中调用c/c++写的代码。但是c/c++写的代码要编译成dll文件,在dll中导出你想在python中调用的函数或变量。ctypes的详细用法见官方文档: http://docs.python.org/2/library/ctypes.html这里只是个人的一个简单总结。1. 加载Windows系统自带的dll文件: #加载c转载 2014-12-12 09:43:52 · 11340 阅读 · 0 评论 -
Python 调用 Shell脚本的方法
1.os模块的popen方法 通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。>>> os.popen('date -u |wc')<open file 'date -u |wc', mode 'r' at 0x7f9539eb34b0>>>> os.popen('date -u |wc').read()' 1原创 2016-05-20 17:50:56 · 1847 阅读 · 0 评论