摘要: python 字符串转换小写可以用到字符串对象的方法lower,下面通过例子给大家说下:比如字符串对象mm = 'AFEFEFEaa'调用字符串的方法lower方法print m.lower()输出结果:afefefeaa下面我们可以用字符串对象的islower(),来判断字符串对象里面的元素是否是小写,如果全部为小写,则返回true,如果字符串对象里面有元素是大写,则返回false.比如:m = 'AFEFEFEaa'c = m.lower()print c.islower()因为c字符串对象里面的元素都是小写,所以返回true.原文地址:http://www 阅读全文
posted @ 2013-01-15 21:10 老王python 阅读(1167) 评论(0) 推荐(0) 编辑
摘要: 今天给大家说下python字符串的find方法,从python的文档里可以知道find方法是查找子串在字符串的开始位置。看下文档解释:string.find(s, sub[, start[, end]]) Return the lowest index in s where the substring sub is found such that sub is wholly contained in s[start:end]. Return -1 on failure. Defaults for start and end and interpretation of negative valu 阅读全文
posted @ 2013-01-15 21:09 老王python 阅读(1411) 评论(0) 推荐(0) 编辑
摘要: python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1比如:info = 'abca'print info.index('a')返回:0,说明字母a是在info的第0个位置。如果我们把字母a换成333是什么结果。 print info.index('333')ValueError: substring not found它会有一个异常的出现,方便我们来处理。本文地址:http://www.cnpythoner.com/post/224. 阅读全文
posted @ 2013-01-15 21:08 老王python 阅读(1297) 评论(0) 推荐(0) 编辑
摘要: 每个程序员有自己合适的编辑器,根据平台和自己的机器配置,大家都可以列出自己使用的编辑器比如:vim emacs ulipadPythonforeclipsepydevNetBeanspyscripter我觉的找到合适自己的编辑器就行。 阅读全文
posted @ 2012-12-11 22:43 老王python 阅读(476) 评论(0) 推荐(0) 编辑
摘要: python控制语句和其它的语言的控制语句有些地方是不同的,python的一些哲学思想就体现在他的控制语句上。1比如python提倡简单实用的思想,它就没有switch语句,如果要实现switch语句的效果的话可以通过2个方法来写把(1)通过if elif 语句来实现if 条件:...elif 条件:...else:...(2)通过info = {}info = {'a':'1','b':2,'c':3,'default':'ss'}c = info.get('a','def 阅读全文
posted @ 2012-12-02 16:42 老王python 阅读(390) 评论(0) 推荐(0) 编辑
摘要: python可以方便地支持 多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,python的运行在python 虚拟机上,创建的多线程可能是虚拟的线程,需要由python虚拟机来轮询调度,这大大降低了python多线程的可用性。我们经今天用了经典的生产者和 消费者的问题来说明下python的多线程的运用 上代码:#encoding=utf-8import threadingimport randomimport timefrom Queue import Queueclass Producer(threading.Thread): def __init__( 阅读全文
posted @ 2012-12-02 16:41 老王python 阅读(642) 评论(0) 推荐(0) 编辑
摘要: django处理一个Request的过程是首先通过django 中间件,然后再通过默认的URL方式进 行的。所以说我们要做的就是在django 中间件这个地方把所有Request拦截住,用我们自己的方式完成处理以后直接返回Response,那么我们可以简化原来的设计思路,把中间件不能处理的 Request统统不管,丢给Django去处理。如果你要在用户登录或者其它的处理过程中完成自己的一些处理,那django 中间件非常的合适,感觉和django form一样,提倡这种dry的哲学风格设计非常的有意思,下面具体跟着老王学习下把:先说下django 中间件的安装方法:为了激活中间件组件,把它添. 阅读全文
posted @ 2012-12-02 16:39 老王python 阅读(918) 评论(0) 推荐(0) 编辑
摘要: 今天晚上不是很忙,所以早早的就在电脑的旁边开始写东西了。我今天给大家分享一个我自己用python写的自动登录 人人网的脚本,没办法就是懒!懒的输入帐号和密码,让python给我们减少工作量! 先上脚本吧,等下来讲下知识点:#!/usr/bin/env python#encoding=utf-8import sysimport reimport urllib2import urllibimport cookielibclass Renren(object): def __init__(self): self.name = self.pwd = self.content = self.domai. 阅读全文
posted @ 2012-12-02 16:38 老王python 阅读(1181) 评论(1) 推荐(0) 编辑
摘要: 有的时候我们要进行数据缓存的话,要用到python 序列化 比如我们可以把一些配置的信息放到数组,字典或者做为类的属性,然后对数据进行 序列化,再把序列化好的数据放到文件里或者直接放到数据库里,这样可以方便下次要用数据的时候 对数据进行反序列化,再进行操作。 下面给个例子: 主要是用到了python pickle 先是定义一个字典。然后把数据序列化后放到文件里 info = {} info = {'name':'jay','age':20} import pickle f = open('1.txt','wb') 阅读全文
posted @ 2012-12-02 16:36 老王python 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 上一节老王我说了下django template 语法,可以通过django来把view里的数据显示在页面里,这节主要说下django template filter.django template 字符截取sliceReturns a slice of the list.Example:{{ some_list|slice:":2" }}If some_list is ['a', 'b', 'c'], the output will be ['a', 'b'].django template 阅读全文
posted @ 2012-12-02 16:35 老王python 阅读(469) 评论(0) 推荐(0) 编辑
摘要: python 引用:python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多,比如a = [1,2,3]表示变量a保存了这个列表的地址python里可以用id()来查询下a在内存的地址是:675375852b = a 那b的内容是什么,地址又是什么呢?用print 输出下b的内容也是[1,2,3]然后我们查看下b的地址看下能否验证我们的结论print id(b)果然b的地址也是:675375852呵呵看来结论也正确的。这样会带来一个问题,因为变量a,和变量b都是保存了同一个列表的地址。如果我改变a指向的列表的值的话,那b指向的列表的值也同时改变比如:a[1] = 6pr 阅读全文
posted @ 2012-12-02 16:33 老王python 阅读(313) 评论(0) 推荐(0) 编辑
摘要: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替换成自己想要的字符串的方法下面给个例子:import relink = re.compile("\d+")content = "laowang-222haha"info = re.sub(link,'www.cnpythoner.com',content)print infoinfo这个字符串就是替换好的re.sub 函数进行以正则表达式为基础的替换工作 1. >>> import re 2. >>> 阅读全文
posted @ 2012-12-02 16:31 老王python 阅读(7683) 评论(0) 推荐(0) 编辑
摘要: 如果你要用python匹配字符串的开头或末尾是否包含一个字符串,就可以用startswith,和endswith比如:content = 'ilovepython'如果字符串content以ilove开始,返回True,否则返回Falsecontent.startswith("ilove")返回truecontent.startswith("sss")返回false如果字符串content以python结尾,返回True,否则返回Falsecontent.endswith('python')返回truecontent.en 阅读全文
posted @ 2012-12-02 16:29 老王python 阅读(5427) 评论(0) 推荐(0) 编辑
摘要: 今天说下django template extends我之前写php的时候一般把公用的模板比如页面头部和页面底部全部分离出来,然后用require 'footer.php' 等这样如果要修改头部后者尾部连接的话。只要修改2个文件就可以了。开始我觉的这个已经非常好用了。但是我接触了django以后。发现django模板的继承功能比php的还更强大。。比如我们写一个index.php<html><head><title>test</title><div id="daohang">首页 python py 阅读全文
posted @ 2012-12-02 16:28 老王python 阅读(985) 评论(0) 推荐(0) 编辑
摘要: django template为设计者和程序员提供了不同的用法我先说下对设计者这块的把它里面主要分为3个部分把1是基本语法这块:和python的语法比较相似。也是if else for 等等。可以看下python 控制语句如果熟悉python的话,学起这个来应该比较简单2管道符号这块:如果你要改变对象属性的话。比如截取字符。还要去掉html格式等等。。对程度员这块的话。1可以对模板里面的方法进行重写。这样提高了模板的灵活性2可以直接把比如request等对象直接模板里用。对系统的扩展性比较好下几篇开始写django template 的连载,可能写的不是很好。。希望大家多多包涵!推荐给你几篇. 阅读全文
posted @ 2012-12-02 16:27 老王python 阅读(522) 评论(0) 推荐(0) 编辑
摘要: python sys模块包含了与python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性里面有个 sys.path属性。他是一个list.默然情况下导入文件或者模块的话,他会先在sys.path里找模块的路径。如果没有的话,程序就会报错。所以我们一般自己写程序的话。最好把自己的模块路径给加到当前模块扫描的路径里,eg: sys.path.append('你的模块的名称'),这样程序就不会因为找不到模块而报错。。我感觉sys.path和__init__.py 这2个东西开始学的时候比较容易出问题。所以要注意下。如果对这个兴趣,可以看看相关 阅读全文
posted @ 2012-12-02 16:23 老王python 阅读(911) 评论(0) 推荐(0) 编辑
摘要: python导入模块分为2种:1 import 模块名也可以2 modulename = 'haha'#模块字符串然后:m = __import__('mymodule')下面方法就可以用python 动态创建类如果要取得模块中的一个属性的话:可以用getattr(),比如:c = getattr(m, 'myclass') myobject = c() 但是要注意:如果myclass并不在mymodule的自动导出列表中(__all__),则必须显式地导入,例如: m = __import__('mymodule', globa 阅读全文
posted @ 2012-12-02 16:20 老王python 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 如何学习python呢?每个人都有自己的方法。只要能把它学好就行。下面说下老王这个半掉水的程序员的学习过程。我开始学习python也是到了一个公司以后才开始学的。之前我是搞php的。我开始学的时候是有公司的高手来带着我学习。先下载相关的版本,然后看相关的书籍。我把学习手册看完了。然后上机把后面的练习实践了一下。这样一遍下来。对它有个大概的了解。你说具体的话。我当时也答不上来,接着我就学习了下python的核心编程。感觉这本书的实践性比较强。介绍了很多相关的模块和包。然后我边看书边练习。这2个过程结束的话,基本写点小脚本是没问题的。该出手时就出手。你可以写个替换文件的程序,计算器程序。你想写什. 阅读全文
posted @ 2012-12-02 16:19 老王python 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 第2节讲了下django form 验证处理过程,这一节我们一起来学习下django form 的显示部分form的显示部分主要分为2部分:1统一的显示:比如在模板里是{{form.as_table}},{{form.as_p}}这样一次性可以把表单里的所有字段给显示处理:好处是主要在表单里写一点代码就可以了。缺点是如果你要对单个的表单元素的显示进行控制的的话。那就没办法了。有需求就有解决办法,下面介绍的是form 显示单个元素,比如:{{ field.label_tag }}: {{ field }}比如我的form有个qq字段。那么就是这样写:{{ form.qq.label_tag }} 阅读全文
posted @ 2012-12-02 16:15 老王python 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 前面讲了django form 定义这一块,对python的django的form有个大概的认识,这一节我主要讲下django form的验证处理处理分为两部分:1form自身处理2views里的处理form自身处理:假如我们定义一个用户的表单class Member(model.ModelFrom): def clean_username(self): 这个是对form里面的<input type="text" name="username">进行验证 """验证帐号""" ... 阅读全文
posted @ 2012-12-02 16:14 老王python 阅读(706) 评论(0) 推荐(0) 编辑
摘要: django是我接触过的框架中最好用的form,之前我也搞过php,也用过php的一些框架。但是感觉他们在处理form的时候都是力不从心。要不就是集成度太高了,不好扩展。要不就是功能不太强大不能应对web现在的复杂的环境,但是自从我学习了python,接触了它以后就发现django的form是多少的爽阿。下面我介绍下form的一些基本的东西,可能我介绍的不好。大家不要扔鸡蛋白菜哈!form表单可以自己定义表单也可以通过继承model来生成:表单主要完成4个功能1显示表当的样式(Widget)2通过规则验证表单数据(Field)3显示验证错误信息(Form)4把提交的数据转换成PYTHON的数. 阅读全文
posted @ 2012-12-02 16:12 老王python 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 你用django开发比较大的项目的时候,可能会想过让程序比较有好的维护性。比如一些配置信息放在一个地方管理。如果要修改的时候,只要修改一个地方就可以了。django的url一般会经常改变的。如果我们在views里做个处理,然后处理以后做跳转:def haha(request):..........HttpResponseRedirect('list/member')假设我们在url.py里是这样配置的:(r^'list/member','haha')如果我们接到老板的需求,需要改下list/member,那如果时间比较紧的情况下,你可能就会忘掉v 阅读全文
posted @ 2012-12-02 16:10 老王python 阅读(791) 评论(0) 推荐(0) 编辑
摘要: python中的Module是比较重要的概念。常见的情况是,事先写好一个.py文 件,在另一个文件中需要import时,将事先写好的.py文件拷贝 到当前目录,或者是在sys.path中增加事先写好的.py文件所在的目录,然后import。这样的做法,对于少数文件是可行的,但如果程序数目很 多,层级很复杂,就很吃力了。有没有办法,像Java的Package一样,将多个.py文件组织起来,以便在外部统一调用,和在内部互相调用呢?答案是有的。主要是用到python的包的概念,python __init__.py在包里起一个比较重要的作用要弄明白这个问题,首先要知道,python在执行import语 阅读全文
posted @ 2012-12-02 16:06 老王python 阅读(17213) 评论(3) 推荐(3) 编辑
摘要: 依靠强大的eclipse,pydev显得格外耀眼。强大的调试功能和舒服的编辑环境让pydev赢得了许多人的青睐。不过eclipse本来就是耗资源大户,pydev在这一点上毫无办法,但现在的电脑都很快了,跑eclipse根本就是小case,不用担心太多。除了强大的调试功能,依靠eclipse,pydev的代码浏览能力是其它所有IDE所不能比的,比如按住CTRL键再点击一个类就能自动跳到该类的定义,这对于阅读代码非常有用。pydev 下载地址:http://pydev.org/download.html这里还有一些pydev特点:1 语法错误提示。2 支持强大的断点功能。3 源代码编辑助手、Qui 阅读全文
posted @ 2012-11-29 14:29 老王python 阅读(493) 评论(0) 推荐(0) 编辑
摘要: WingIDE特点:很不错的商业软件,调试器是类VC/eclipse的,相当好用,而且还支持project组织。但默认的设置是不支持中文的,要设置一下字体。1 更快地编写代码2 快速查找和修复错误3 轻松导航代码4 编辑与您最喜爱的键绑定5 自定义您的工作区缺点:不开源,而且破解不好找。想要了解更多,可以看下:http://www.cnpythoner.com/post/215.html 阅读全文
posted @ 2012-11-29 14:28 老王python 阅读(582) 评论(0) 推荐(0) 编辑
摘要: eric 对于开发python这门动态语言的朋友来说,功能还是比较全的。支持调试,变量自动不全功能。如果你已经下载eric的话,就需需要根据系统环境来进行配置。它是基于pyqt进行开发的。所以大家先安装下pyqt这个安装包。1 windows下的安装配置:开始我想介绍下,看到网上已经有介绍了,所以就直接推荐给你:http://hi.baidu.com/runningon/item/1b07680e3453478a03ce1be42 linux 下的安装配置:http://www.2cto.com/os/201107/97002.html相信上面的资料能够满足你的需求。 阅读全文
posted @ 2012-11-29 14:27 老王python 阅读(262) 评论(0) 推荐(0) 编辑
摘要: Boa Constructor特点:依赖包:wxpython1 比起SPE和Ulipad,BOA的编辑功能相当单薄。2 自动补全与智能感知都要手动,而且没有自动语法检查。3 调试器非常好用。4 界面设计器相当好用。缺点:硬伤是对中文支持不好原文章:http://www.cnpythoner.com/post/214.html 阅读全文
posted @ 2012-11-29 14:27 老王python 阅读(718) 评论(0) 推荐(0) 编辑
摘要: Stani's Python Editor 功能特点:1 相当不错的IDE,语法高亮、代码折叠。2 智能感知、自动语法检查等功能一应俱全,集成wxGlade。可惜没有自动补全功能。依赖环境:依赖wxPython转载地址:http://www.cnpythoner.com/post/211.html 阅读全文
posted @ 2012-11-29 14:26 老王python 阅读(1283) 评论(0) 推荐(0) 编辑
摘要: python Eric4 它有调试器,支持断点设置、单步调试和变量值查看。界面也是比较豪华的。不过耗费的内存比较大,有兴趣尝试的朋友可以了解下。地址:http://www.cnpythoner.com/post/212.html 阅读全文
posted @ 2012-11-29 14:26 老王python 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 装了python就会有这个,大家肯定都用过了,功能还凑合,调试器的使用方法和大家熟悉的eclipse/Visual Studio很不一样,需要学习和适应。我建议大家可以再上面写一些比如写程序的时候需要看一些方法的说明,或者是写一些相关的简单代码调试。转载:http://www.cnpythoner.com/post/209.html 阅读全文
posted @ 2012-11-29 14:25 老王python 阅读(1882) 评论(0) 推荐(0) 编辑
摘要: PythonWin editor 成为了win32的python程序开发者必备的工具。如果你习惯了在windows下开发python的话,建议可以试验下这个工具。下载:http://starship.python.net/crew/mhammond/win32/Downloads.html,目前的中文汉化版本还没收集到。 阅读全文
posted @ 2012-11-29 14:25 老王python 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 你安装好了ulipad以后,直接在编辑区里写代码,然后按f5就可以运行了。或者可以是右边上面的黑色小箭头就可以运行了 阅读全文
posted @ 2012-11-29 14:24 老王python 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 一般的编辑器都需要自动不全的插件,有2个好处:1 提高我们编程的效率。2 能够让我们尽量的减少变量代码的出错率。之前的ulipad是没有自动不全的功能,到4.0的时候就有了自动不全的插件了。 阅读全文
posted @ 2012-11-29 14:24 老王python 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 这段时间在用python处理网页抓取这块,互联网很多网页的编码格式都不一样,大体上是GBK,GB2312,UTF-8,等待。我们在获取网页的的数据后,先要对网页的编码进行判断,才能把抓取的内容的编码统一转换为我们能够处理的编码。比如beautiful soup内部的编码就是unicode的编码。下面介绍两种python 判断网页编码的方法:1 import urllibf = urllib.urlopen('http://xxx.com').info()print f.getparam('charset')2 import chardet 你需要安装一下char 阅读全文
posted @ 2012-11-29 14:23 老王python 阅读(801) 评论(0) 推荐(1) 编辑
摘要: 放假回来了,很久没更新博客了,以后得常更新,今天给大家分享下python第3方的模块包:mechanize。mechanize是非常合适的模拟浏览器的模块,它的特点主要有:1 http,https协议等。2 简单的HTML表单填写。3 浏览器历史记录和重载。4 Referer的HTTP头的正确添加(可选)。5 自动遵守robots.txt的。6 自动处理HTTP-EQUIV和刷新。所以你可以用mechanize来完成一些自动化浏览器想要做的事情,比如自动登录表单,自动填写表单等。首先你在mechanize download页面里面下载并且安装好然后可以看下文档:http://wwwsearch 阅读全文
posted @ 2012-11-29 14:23 老王python 阅读(2139) 评论(2) 推荐(0) 编辑
摘要: python 列表相加可以有两种方法实现:1 利用操作符+比如:a = [1,2,3]b = [4,5,6]c = a+bc的结果:[1,2,3,4,5,6]2 利用extend比如:a = [1,2,3]b = [4,5,6]a.extend(b)a的结果:[1,2,3,4,5,6]结果是一样的,但是+号生成的是一个新的对象,而extend则是在原地的修改a对象。 阅读全文
posted @ 2012-11-29 14:22 老王python 阅读(5162) 评论(0) 推荐(0) 编辑
摘要: python 列表本身没有去重的功能,但是我们建议借助别的类型来完成去重的功能,比如集合。a = [1,2,3,3,2,4]b = set()a = list(set(a))print a思路先用set先转换成集合,集合里面的值是唯一的。所以这里保证把重复的内容给去掉。然后再转换成我们想要的列表。想要了解更多可以列表相关的功能,可以看下python 列表操作 阅读全文
posted @ 2012-11-29 14:21 老王python 阅读(2294) 评论(0) 推荐(0) 编辑
摘要: 前段时间需要做一个模板处理的工作,因为需要在模板里面进行逻辑处理,简单的元组字符串替换和关键字字符串替换已经不能满足需求了。所以选择python的第3方模板引擎来实现这个功能。目前大家用的比较多的模板引擎主要是:mako和jinja。 我对比了下,发现jinja的模板引擎和django的语法还是比较相似的,于是我选择了jinja作为我的模板引擎。首先我到jinja的官网上下载了源码包,并且进行了安装。然后看了下官方的文档,进行了简单的一些功能的测试,为以后的开发做准备。现在开始简单的操作:先在python里面进行模板的启动和赋值env = Environment(loader=PackageL 阅读全文
posted @ 2012-11-29 14:20 老王python 阅读(1555) 评论(0) 推荐(0) 编辑
摘要: 今天给大家分享下python在本地远程同步文章数据到wordpress,如果你的网站数据库是支持远程连接的话,那可以用下面的方法。我当初写这个代码是为了解决wordpress底层站群的文章同步问题,可以让本地的mysql数据通过python脚本远程插入到网站数据库里,从而可以完成定时的更新。当然这个脚本如果部署到服务器上会更好,可以通过windows的计划任务和linux的cron服务来定期的启动这个脚本,从而达到每天更新文章的目的。写这个脚本主要是要熟悉wordpress的表结构,不然你没法插入数据到wordpress数据表。代码如下:wordpress 数据python同步方法Python 阅读全文
posted @ 2012-11-29 14:19 老王python 阅读(1089) 评论(0) 推荐(0) 编辑
摘要: 前段时间有朋友发邮件问我django环境变量的设置,他应该是想在django的项目下建立一个单独运行的模块,同步相关数据到数据库的操作。这样通过运行该文件,可以利用django现成的简单的model操作来达到同步数据的目的。下面是他的问题截图:从报错的提示来看,应该是环境变量没有设置好而导致没法利用django相关的模块和数据。我给他回复的是:import os, sysdirname = os.path.dirname(__file__)#当前工作目录sys.path.append(dirname)import settings # Assumed to be in the same dir 阅读全文
posted @ 2012-11-29 14:17 老王python 阅读(761) 评论(0) 推荐(0) 编辑