智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

随笔分类 -  Python

1

摘要:作者:Jerry Jho链接:https://www.zhihu.com/question/23003213/answer/56121859来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 C/C++ 调用 Python (基础篇)— 仅讨论Python官方提供的实现方 阅读全文

posted @ 2018-03-26 14:57 Bill Yuan 编辑

摘要:转自:http://www.91linux.com/html/article/program/python/20090804/17759.htm在python有各种各样的string操作函数。在历史上string类在python中经历了一段轮回的历史。在最开始的时候,python有一个专门的string的module,要使用string的方法要先import,但后来由于众多的python使用者的建议,从python2.0开始,string方法改为用S.method()的形式调用,只要S是一个字符串对象就可以这样使用,而不用import。同时为了保持向后兼容,现在的python中仍然保留了一个s 阅读全文

posted @ 2010-12-10 11:55 Bill Yuan 编辑

摘要:保证你要转换的字符串编码为UTF8,如果不是,请iconv cnStr成utf8 恩, pack/unpack很强大,, 和c语言交换数据, 二进制方式的序列化,操作二进制文件.. etc… 附上format参数的说明: 阅读全文

posted @ 2010-12-10 01:20 Bill Yuan 编辑

摘要:1.  前言偶然看到Erlang vs. Stackless python: a first benchmark,对Erlang和Stackless Python的并发处理性能进行了实验比较,基本结论认为二者有比较相近的性能。我看完产生的问题是,Stackless Python与Python的其他并发实现机制性能又会有多大区别呢,比如线程和进程。因此我采用与这篇文章相同的办法来对Stackless Python、普通Python的thread模块、普通Python的threading模块、普通Python的processing模块这四种并发实现方案进行了性能实验,并将实验过程和基本结果记录在这 阅读全文

posted @ 2010-12-08 16:37 Bill Yuan 编辑

摘要:有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用struct来处理c语言中的结构体.struct模块中最重要的三个函数是pack(), unpack(), calcsize()pack(fmt, v1, v2, ...) 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)unpack(fmt, string) 按照给定的格式(fmt)解析字节流string,返回解析出来的tuplecalcsize(fmt) 计算给定的格式(fmt)占用多少字节的内存struct中支持的格式如下 阅读全文

posted @ 2010-12-06 22:43 Bill Yuan 编辑

摘要:代码初探正确的答案是:[代码]如果您已经猜对了,那么可以不看我这篇博文了。如果你没有猜对或者心里有所疑问,那我的这篇博文正是为您所准备的。一切由为什么会输出“A.__private()”开始。但要讲清楚为什么,我们就有必要了解一下Python的命名机制。据 Python manual,变量名(标识符)是Python的一种原子元素。当变量名被绑定到一个对象的时候,变量名就指代这个对象,就像人类社会一样,不是吗?当变量名出现在代码块中,那它就是本地变量;当变量名出现在模块中,它就是全局变量。模块相信大家都有很好的理解,但代码块可能让人费解些。在这里解释一下:代码块就是可作为可执行单元的一段Pyth 阅读全文

posted @ 2010-12-06 20:10 Bill Yuan 编辑

摘要:今天学习了Python中有关正则表达式的知识。关于正则表达式的语法,不作过多解释,网上有许多学习的资料。这里主要介绍Python中常用的正则表达式处理函数。re.match  re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。 [代码]re.match的函数原型为:re.match(pattern, string, flags)第一个参数是正则表达式,这里为"(\w+)\s",如果匹配成功,则返回一个Match,否则返回一个None;第二个参数表示要匹配的字符串;第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。re.search 阅读全文

posted @ 2010-12-06 20:04 Bill Yuan 编辑

摘要:介绍了thread模块,今天来学习Python中另一个操作线程的模块:threading。threading通过对thread模块进行二次封装,提供了更方便的API来操作线程。今天内容比较多,闲话少说,现在就开始切入正题!threading.Thread  Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入。下面分别举例说明。先来看看通过继承 threading.Thread类来创 阅读全文

posted @ 2010-12-06 20:02 Bill Yuan 编辑

摘要:例如:[代码]或者[代码]如果要在程序中动态地创建类实例,也一样要分两步走,例如:[代码]但是要注意:如果myclass并不在mymodule的自动导出列表中(__all__),则必须显式地导入,例如:[代码]若要封装的规范一些,可以这样来做:代码转自:http://www.python8.org/a/fenleiwenzhang/yuyanjichu/2010/1001/566.html 阅读全文

posted @ 2010-12-06 19:33 Bill Yuan 编辑

摘要:代码具体的结果, 直接拷贝代码到你的本机下运行即可知道. 在我这里, sbv6的时间是0.578s, 最慢的是用generator的sbv2, 22s左右, 其他时间是差不多的, 都是11s左右.总的来说, PEP 265 介绍的方法基本是别的方法十倍左右的速度. 转自:http://www.python8.org/a/fenleiwenzhang/yuyanjichu/2009/0913/318.html 阅读全文

posted @ 2010-12-06 19:30 Bill Yuan 编辑

摘要:对于普通的ACSII(iso)字符串和Unicode字符串,可采用以下方法鉴别:[代码]原理:因为str和Unicode字符串都是从基类basestring继承而来的,(basestring内建基类,为空,类似于object)但是对于标准库中的UserString,此方法不适用,可采用以下方法鉴别:[代码]此方法比较全面,但是效率较低 阅读全文

posted @ 2010-11-27 11:24 Bill Yuan 编辑

摘要:转自:http://www.yybug.com/read-htm-tid-15324.html4.4 管理资源等级WEB应用中的路径通常使用分级目录管理。例如如下URL:http://example.com/peoplehttp://example.com/people/charleshttp://example.com/people/charles/contact这里可以很清楚的看出等级划分。页... 阅读全文

posted @ 2010-11-22 17:03 Bill Yuan 编辑

摘要:转自:http://www.yybug.com/read-htm-tid-15324.html4.0 WEB服务器 即使是很保守的说,现在的很多软件是基于WEB开发的。人们将大量时间花费在WEB浏览器上面,包括阅读HTML页面、电子邮件、管理日志、进入数据库的记录、更新Wiki页面和写weblog。即使你不打算写严格的WEB应用,WEB界面也更加容易提供适合于跨平台的UI。在你的应用中包含轻量级的... 阅读全文

posted @ 2010-11-22 16:51 Bill Yuan 编辑

摘要:转自:http://www.yybug.com/read-htm-tid-15324.html3.1WEB客户端大部分上网活动都是通过WEB浏览器来访问WEB的。所以通过HTTP协议制作客户端来访问WEB是很有意义的。这一章讲解如何使用twisted.web.client模块来操作互联网资源,包括下载页面,使用HTTP认证,上传文件,使用HTTP字段等。3.1 下载网页最简单和常用的任务莫过于通过... 阅读全文

posted @ 2010-11-22 16:27 Bill Yuan 编辑

摘要:转自:http://www.yybug.com/read-htm-tid-15324.html使用异步的方式工作的结果除了反应器reactor之外,Deferred可能是最有用的Twisted对象。你可能在Twisted程序中多次用到Deferred,所有有必要了解它是如何工作的。Deferred可能在开始的时候引起困惑,但是它的目的是简单的:保持对非同步活动的跟踪,并且获得活动结束时的结果。De... 阅读全文

posted @ 2010-11-22 15:43 Bill Yuan 编辑

摘要:转自:http://www.yybug.com/read-htm-tid-15324.html为什么使用Twisted? 如果你并不准备使用Twisted,你可能有很多异议。为什么使用Twisted而不是其他网络函数库或框架?如下是一些充分的理由:·基于PythonTwisted是使用Python编写的,强壮的、面向对象的解释性语言。Python使它的爱好者充满热情。使用Python... 阅读全文

posted @ 2010-11-22 15:39 Bill Yuan 编辑

摘要:转载:http://blog.csdn.net/jackyyen/archive/2009/04/13/4069887.aspx// 部分一Twisted使用了更多的基于事件的方式。要写一个基本的服务器,你要实现事件处理器,它处理诸如一个新的客户端连接、新的数据到达和客户端连接中断等情况。在Twisted中,你的事件处理器定义在一个protocol中;你也需要一个factory,当一个新的连接到达... 阅读全文

posted @ 2010-11-18 13:28 Bill Yuan 编辑

摘要:1、在3.0版本,print 以作为一个函数 print ("HelloWorld !!!");2、python的函数定义: 为 def functionName(functionParams) 没有返回值定义,其实每个函数都有返回值,如果有return,返回return,如果没有则返回None(python的空值); functionParams 不需要表明类型3、Python的list类似于... 阅读全文

posted @ 2009-12-10 13:40 Bill Yuan 编辑

摘要:官方主页 :http://www.python.org/  For windows的 python解释器 (包括tkInterGUI开发环境,一个简单的IDE,完整广泛的英文文档)9MB:http://www.python.org/ftp/python/2.4.3/python-2.4.3.msi  一份不错的python中文教程 :http://www.woodpecker.org.cn/obp... 阅读全文

posted @ 2009-12-10 13:26 Bill Yuan 编辑

摘要:转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-pydev/index.htmlPyDev for Eclipse 简介级别: 初级郑 伟芳 (zhengwf@cn.ibm.com), 软件工程师, IBM2008 年 11 月 27 日PyDev for Eclipse 是一个功能强大且易用的 Eclipse Python... 阅读全文

posted @ 2009-12-10 11:22 Bill Yuan 编辑

1