06 2013 档案

摘要:我们经常通过python做采集网页数据的时候,会碰到一些乱码问题,今天给大家分享一个解决网页乱码,尤其是中文网页的通用方法。首页我们需要安装chardet模块,这个可以通过easy_install 或者pip来安装。安装完以后我们在控制台上导入模块,如果正常就可以。比如我们遇到的一些ISO-8859-2也是可以通过下面的方法解决的。直接上代码吧:import urllib2import sysimport chardetreq = urllib2.Request("http://www.163.com/")##这里可以换成http://www.baidu.com,http: 阅读全文
posted @ 2013-06-04 21:58 老王python 阅读(728) 评论(0) 推荐(0) 编辑
摘要:1 setattr():setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。setattr()方法接受3个参数:setattr(对象,属性,属性的值)2 delattr():而delattr()表示你可以通过该方法,删除指定的对象属性。delattr方法接受2个参数:delattr(对象,属性)下面是代码的应用#encoding=utf-8class student(object): def __init__(self,name,age): self.name = name self.age = agesinfo = student('xiaoming',32 阅读全文
posted @ 2013-06-04 21:46 老王python 阅读(499) 评论(0) 推荐(0) 编辑
摘要:python classmethod类方法的要点主要有3个:1 在python中.类方法 @classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。 类方法的第一个参数cls,而实例方法的第一个参数是self,表示该类的一个实例。2 普通对象方法至少需要一个self参数,代表类对象实例3 类方法有类变量cls传入,从而可以用cls做一些相关的处理。并且有子类继承时,调用该类方法时,传入的类变量cls是子类,而非父类。 对于类方法,可以通过类来调用,就像C.f(),有点类似C++中的静态方法, 也可以通过类的一个实例来调用,就像C().f(),这 阅读全文
posted @ 2013-06-04 21:45 老王python 阅读(1083) 评论(0) 推荐(0) 编辑
摘要:比如我们知道大写的A的ASCII码为 65,小写a的ASCII为97那可以通过python chr()方法来获取结果,chr()方法接受的参数为整数,并且范围在[0-255]比如: python chr(65) 则返回结果:‘A’ 阅读全文
posted @ 2013-06-04 21:42 老王python 阅读(1652) 评论(0) 推荐(0) 编辑
摘要:我们需要判断python中的对象是否可以调用,可以用内置方法python callable()如果对象可以调用的,则返回true,如果对象不能调用,则返回false. #encoding=utf-8def info(): a = 1 return aflag = callable(info)print flagsflag = callable(str.lower)print sflagtflag = callable(2)print tflag返回的结果:true,true,false我们就可以看出哪些是可以调用的,哪些不可以调用。 阅读全文
posted @ 2013-06-03 22:09 老王python 阅读(600) 评论(0) 推荐(0) 编辑
摘要:一个整数转换为一个二进制字符串可以用python bin()方法。其结果是一个有效的Python表达式。比如我们要得到整数1的二进制码可以:a = 1bin(a)输出的结果:ob1。说明1的二进制码是1a = 2bin(a)输出的结果:ob102的二进制码是10如果里面的参数不是一个Python的int对象,这回抛出异常如果a = 'fefe'bin(a)输出的结果:Traceback (most recent call last): File "test.py", line 3, in <module> print bin(a)TypeErro 阅读全文
posted @ 2013-06-03 22:08 老王python 阅读(2479) 评论(0) 推荐(0) 编辑
摘要:python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest先介绍下unittest的基本使用方法:1.import unittest2.定义一个继承自unittest.TestCase的测试用例类3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作。4.定义测试用例,名字以test开头。5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。6.调用unittest.main()启动测试7.如果测试未通过,会输出相应的错误提示。如果测试全部 阅读全文
posted @ 2013-06-03 22:06 老王python 阅读(3889) 评论(0) 推荐(0) 编辑
摘要:测试的本质,就是“想尽一切办法寻找软件的缺陷!”,测试是一个贯穿于整个开发过程的连续过程,从某个意义上说,软件开发的过程实际上就是测试过程,测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试失败。测试的工作模式: 1 编写和维护一套详尽的单元测试用例; 2 先构造单元测试和验收测试用例,然后再编写代码; 3 根据构造的测试用例来编写代码。python在测试这块用几个比较好测试模块。1 unittest2 PyUnit3 TestSuite4 nosetests网上收集的2个测试书籍:1 xUnit测试模式 http://book.douban.com/... 阅读全文
posted @ 2013-06-03 22:01 老王python 阅读(461) 评论(0) 推荐(0) 编辑
摘要:如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法。今天给大家分享的就是字典的get()方法。这里我们可以用字典做一个小游戏,假设用户在终端输入字符串:"1"或者是"2"或者是"3",返回对应的内容,如果是输入其他的,则返回"error"这里有的朋友可能会用if elif else判断语句来操作,确实可以,但是比较繁琐。给大家推荐一个字典的get()方法非常的方便。info = {'1':'first', 阅读全文
posted @ 2013-06-03 21:56 老王python 阅读(3072) 评论(0) 推荐(0) 编辑
摘要:python 正则表达式 re findall 方法能够以列表的形式返回能匹配的子串。re.findall(pattern, string[, flags]):搜索string,以列表形式返回全部能匹配的子串。先看个简单的代码:import rep = re.compile(r'\d+')print p.findall('one1two2three3four4')### output #### ['1', '2', '3', '4']稍微复杂点比如:info = '<a href=&q 阅读全文
posted @ 2013-06-03 21:55 老王python 阅读(1951) 评论(0) 推荐(0) 编辑
摘要:python做SEO相关事情,我在之前的文章已经讲到过,今天给大家分享python中文分词的一些知识。说到分词,如果是做GOOGLE的朋友,那用python分词很简单,可以直接根据空格来分词,或者有相关的nltk模块来处理。中文分词的话,就比较麻烦,因为不能通过空格来分词,并且分词还得考虑语义问题等。下面列出几个比较好的中文分词:我用的比较多的是结巴分词,下面详细介绍下:1 结巴分词 0.22 发布,Python 中文分词组件 jieba 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索 阅读全文
posted @ 2013-06-03 21:52 老王python 阅读(2300) 评论(0) 推荐(0) 编辑
摘要:在python中,yield就是这样的一个生成器。yield 生成器的运行机制:当你问生成器要一个数时,生成器会执行,直至出现 yield 语句,生成器把 yield 的参数给你,之后生成器就不会往下继续运行。 当你问他要下一个数时,他会从上次的状态。开始运行,直至出现yield语句,把参数给你,之后停下。如此反复 直至退出函数。(以上关于yield的描述,在后面列举一个简单的例子来解释这段话)。yield的使用:在python中,当你定义一个函数,使用了yield关键字时,这个函数就是一个生成器,它的执行会和其他普通的函数有很多不同,函数返回的是一个对象,而不是你平常 所用return语句那 阅读全文
posted @ 2013-06-03 21:48 老王python 阅读(400) 评论(0) 推荐(0) 编辑