摘要: python 自动化测试资料:http://yunpan.cn/QXVvwVJsAsPnb 阅读全文
posted @ 2013-08-17 21:25 老王python 阅读(3245) 评论(2) 推荐(1) 编辑
摘要: python 是一种全功能的语言,2.7很稳定,成熟的版本,且有很多开源的模块。小编个人觉得python有一个很大的优点,就是语法简练,甚至可以说简单。比起pascal或者 C什么的,简单的难以置信。而且强制缩进,格式特别优美。Python 语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。1. 用在软件里,做2次开发。比如office可以用vb script(如果不知道就google下),python也可以起到类似作用。在3D设计软件MAYA里就用了python作为二次开发脚本语言。2. 网络服务器后台开 阅读全文
posted @ 2013-08-10 19:40 老王python 阅读(2351) 评论(0) 推荐(0) 编辑
摘要: 前段时间,我的博客被K了,现在恢复了,但是没排名,如果是搜老王python进来的同学,想要了解更多python知识可以移步: http://www.cnpythoner.com 谢谢你的支持! 阅读全文
posted @ 2012-10-12 14:27 老王python 阅读(3075) 评论(0) 推荐(0) 编辑
摘要: python基础教程,有需要的可以点击查看:http://www.cnpythoner.com 阅读全文
posted @ 2022-02-23 08:15 老王python 阅读(44) 评论(0) 推荐(0) 编辑
摘要: Lesson 1 准备好学习Python的环境下载的地址是:www.python.org为了大家的方便,我在校内作了copy:http://10.1.204.2/tool/compiler&IDE/Python-2.3.2-1.exelinux版本的我就不说了,因为如果你能够使用linux并安装好说明你可以一切自己搞定的。运行环境可以是linux或者是windows:1、linuxredhat的linux安装上去之后一定会有python的(必须的组件),在命令行中输入python回车。这样就可以进入一个>>>的提示符2、windows安装好了python之后,在开始菜 阅读全文
posted @ 2013-08-10 21:17 老王python 阅读(4298) 评论(0) 推荐(1) 编辑
摘要: 通过内置方法len()来计算字符串的长度,注意这个计算的是字符的长度。aa = 'afebb'bb = '你'print len(aa)print len(bb) 阅读全文
posted @ 2013-08-10 21:10 老王python 阅读(81768) 评论(0) 推荐(0) 编辑
摘要: 通过变量来进行赋值fstr = 'strcpy'sstr = fstrfstr = 'strcpy2'print sstr 阅读全文
posted @ 2013-08-10 21:08 老王python 阅读(6212) 评论(0) 推荐(1) 编辑
摘要: 通过字符串的decode和encode方法1 encode([encoding,[errors]]) #其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为"strict",意思是UnicodeError。可能的值还有'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 和所有的通过codecs.register_error注册的值。S.decode( 阅读全文
posted @ 2013-08-10 21:07 老王python 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 通过步进反转[::-1]a = 'abcd'b = a[::-1]##[::-1]通过步进反转print b 阅读全文
posted @ 2013-08-10 21:04 老王python 阅读(1145) 评论(0) 推荐(0) 编辑
摘要: 字符串分割,可以用split,rsplit方法,通过相应的规则来切割成生成列表对象info = 'name:haha,age:20$name:python,age:30$name:fef,age:55'content = info.split('$')print content 阅读全文
posted @ 2013-08-10 20:23 老王python 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法。 1 find()方法:info = 'abca'print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0info = 'abca'print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3info = 'abca'print info.find('333')##返回-1,查找不到返回-12 ind 阅读全文
posted @ 2013-08-10 20:09 老王python 阅读(62948) 评论(0) 推荐(0) 编辑
摘要: 我们通过操作符号+来进行字符串的相加,不过建议还是用其他的方式来进行字符串的拼接,这样效率高点。原因:在循环连接字符串的时候,他每次连接一次,就要重新开辟空间,然后把字符串连接起来,再放入新的空间,再一次循环,又要开辟新的空间,把字符串连接起来放入新的空间,如此反复,内存操作比较频繁,每次都要计算内存空间,然后开辟内存空间,再释放内存空间,效率非常低。sStr1 = 'strch'sStr2 = 'strchr'newstr = sStr1 + sStr2print newstr想要了解更多字符串的可以看下 阅读全文
posted @ 2013-08-10 20:02 老王python 阅读(28450) 评论(0) 推荐(0) 编辑
摘要: cmp方法比较两个对象,并根据结果返回一个整数。cmp(x,y)如果XY 返回的值为正数。sStr1 = 'strch'sStr2 = 'strchr'print cmp(sStr1,sStr2)##-1想要了解更多字符串相关的信息,可以看下python字符串 阅读全文
posted @ 2013-08-10 19:59 老王python 阅读(32350) 评论(0) 推荐(0) 编辑
摘要: 字符串替换可以用内置的方法和正则表达式完成。1用字符串本身的replace方法:a = 'hello word'b = a.replace('word','python')print b2用正则表达式来完成替换:import rea = 'hello word'strinfo = re.compile('word')b = strinfo.sub('python',a)print b想要了解更多,请看python 字符串替换 阅读全文
posted @ 2013-08-10 19:57 老王python 阅读(85199) 评论(0) 推荐(1) 编辑
摘要: 我们可以通过索引来提取想要获取的字符,可以把python的字符串也做为字符串的列表就更好理解python的字串列表有2种取值顺序1是从左到右索引默认0开始的,最大范围是字符串长度少1s = 'ilovepython's[0]的结果是i2是从右到左索引默认-1开始的,最大范围是字符串开头s = 'ilovepython's[-1]的结果是n上面这个是取得一个字符,如果你的实际要取得一段子串的话,可以用到变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。比如s = 'ilovepython& 阅读全文
posted @ 2013-08-10 19:47 老王python 阅读(8026) 评论(0) 推荐(0) 编辑
摘要: 字符串连接方法1: 用字符串的join方法a = ['a','b','c','d']content = ''content = ''.join(a)print content方法2: 用字符串的替换占位符替换a = ['a','b','c','d']content = ''content = '%s%s%s%s' % tuple(a)print content想要了解更多,请看python字符串连接 阅读全文
posted @ 2013-08-10 19:45 老王python 阅读(1699) 评论(0) 推荐(0) 编辑
摘要: 我们经常通过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 阅读(715) 评论(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 阅读(496) 评论(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 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: 比如我们知道大写的A的ASCII码为 65,小写a的ASCII为97那可以通过python chr()方法来获取结果,chr()方法接受的参数为整数,并且范围在[0-255]比如: python chr(65) 则返回结果:‘A’ 阅读全文
posted @ 2013-06-04 21:42 老王python 阅读(1636) 评论(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 阅读(589) 评论(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 阅读(2462) 评论(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 阅读(3878) 评论(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 阅读(457) 评论(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 阅读(3043) 评论(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 阅读(1931) 评论(0) 推荐(0) 编辑
摘要: python做SEO相关事情,我在之前的文章已经讲到过,今天给大家分享python中文分词的一些知识。说到分词,如果是做GOOGLE的朋友,那用python分词很简单,可以直接根据空格来分词,或者有相关的nltk模块来处理。中文分词的话,就比较麻烦,因为不能通过空格来分词,并且分词还得考虑语义问题等。下面列出几个比较好的中文分词:我用的比较多的是结巴分词,下面详细介绍下:1 结巴分词 0.22 发布,Python 中文分词组件 jieba 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索 阅读全文
posted @ 2013-06-03 21:52 老王python 阅读(2276) 评论(0) 推荐(0) 编辑
摘要: 在python中,yield就是这样的一个生成器。yield 生成器的运行机制:当你问生成器要一个数时,生成器会执行,直至出现 yield 语句,生成器把 yield 的参数给你,之后生成器就不会往下继续运行。 当你问他要下一个数时,他会从上次的状态。开始运行,直至出现yield语句,把参数给你,之后停下。如此反复 直至退出函数。(以上关于yield的描述,在后面列举一个简单的例子来解释这段话)。yield的使用:在python中,当你定义一个函数,使用了yield关键字时,这个函数就是一个生成器,它的执行会和其他普通的函数有很多不同,函数返回的是一个对象,而不是你平常 所用return语句那 阅读全文
posted @ 2013-06-03 21:48 老王python 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 上节我们已经把fabric给配置好了。这节我们通过fabric编写批量执行服务器任务和自动化运维管理。先介绍下fabric的特点,这个在官方文档里面已经介绍过:1 代码可读性强,完全是python语言。2 封装了本地、远程操,内置了一些方法。3 可以根据需求灵活的定义参数。4 角色定义,方便批量管理。常用的配置参数:env.host -- 主机ip,当然也可以-H参数指定env.password -- 密码,打好通道的请无视env.roledefs -- 角色分组,比如:{'web': ['x', 'y'], 'db': [ 阅读全文
posted @ 2013-05-23 20:26 老王python 阅读(1348) 评论(0) 推荐(0) 编辑
摘要: fabric的安装可以选择用python的pip安装或者easy_install来安装。在xubuntu下,我这里用的是sudo apt-get install fabric来安装安装完以后我们进入控制台,然后improt fabric导入下模块,如果没报错,说明安装模块成功。如果你是2.5的话,那需要写个声明:from __future__ import with_statement2.6+的就不需要了。下面演示一个最简单的程序。#!/usr/bin/pythonfrom fabric.api import rundef host_os(): run('uname -s')保 阅读全文
posted @ 2013-05-23 20:25 老王python 阅读(774) 评论(0) 推荐(0) 编辑
摘要: python默认的成员函数和成员变量都是公开的,python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:class Person: def __init__(self): self.__name = 'haha&# 阅读全文
posted @ 2013-05-23 20:24 老王python 阅读(11146) 评论(0) 推荐(0) 编辑
摘要: 如果你需要自定义异常的话,可以从Exception类派生。 在这个例子中,默认的__init__()异常已被我们重写。>>> class MyError(Exception):... def __init__(self, value):... self.value = value... def __str__(self):... return repr(self.value)...>>> try:... raise MyError(2*2)... except MyError as e:... print 'My exception occurred 阅读全文
posted @ 2013-05-23 20:23 老王python 阅读(5546) 评论(0) 推荐(0) 编辑
摘要: 你可以用字符串的format方法来格式化输出字符串。 比如;>>>print'We are the {0} who say "{1}!"'.format('knights','Ni')Wearetheknightswhosay"Ni!"括号内的字符(称为格式字段)被替换的对象。{}括号中的数字是指替换的位置,里面的数字,比如0,1表示替换元组的索引位置。>>>print'{0} and {1}'.format('spam','egg 阅读全文
posted @ 2013-05-11 22:48 老王python 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 假设你想设计一个模块集(也就是一个python包)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能需要创建和维护一个不断增长的各种文件格式之间的转换的模块集合。并且可能要执行声音数据处理(如混合,添加回声,应用平衡功能),所以你写一个永无止境的流模块来执行这些操作:模块设计的包如下:sound/ Top-levelpackage __init__.py Initializethesoundpackage formats/ Subpackageforfileformatconversion... 阅读全文
posted @ 2013-05-11 22:47 老王python 阅读(1557) 评论(0) 推荐(0) 编辑
摘要: 内置的dir()函数是用来找出一个模块内置的方法。它返回一个字符串列表>>>importfibo,sys>>>dir(fibo)['__name__','fib','fib2']>>>dir(sys)['__displayhook__','__doc__','__excepthook__','__name__','__stderr__','__stdin__','__stdout__' 阅读全文
posted @ 2013-05-11 22:45 老王python 阅读(755) 评论(0) 推荐(0) 编辑
摘要: python del方法从列表中删除某个项目索引,这个和列表的pop方法不一样,pop方法则返回一个值。>>> a = [-1, 1, 66.25, 333, 333, 1234.5]>>> del a[0]>>> a[1, 66.25, 333, 333, 1234.5]>>> del a[2:4]>>> a[1, 66.25, 1234.5]>>> del a[:]>>> a[]也可用于删除整个变量: del a 阅读全文
posted @ 2013-05-04 09:53 老王python 阅读(2241) 评论(0) 推荐(0) 编辑
摘要: filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23]>>> def f(x): return x != 'a' >>> filte 阅读全文
posted @ 2013-05-04 09:52 老王python 阅读(431) 评论(0) 推荐(0) 编辑
摘要: pass语句通常什么都不做。它可以表示语句,但这个程序不需要的执行相应的动作。例如:>>> while True:... pass # Busy-wait for keyboard interrupt (Ctrl+C)...这是常用的,用于创建最小的类:>>> class MyEmptyClass:... pass...另外,你可以只定义一个方法,方法里面的内容如果暂时没想好怎么写的话,可以用pass来代替,如果你留空,程序则会报错。>>> def initlog(*args):... pass # Remember to implemen 阅读全文
posted @ 2013-05-04 09:50 老王python 阅读(5528) 评论(1) 推荐(0) 编辑
摘要: break语句,就像在C语言中,打破了最小封闭for或while循环。 而continue语句,终止这次循环,继续执行下一次迭代的循环。 for和while循环可以设置一个else子句;如果你的循环不是通过break终止的话,最后会执行else语句的内容。比如搜索素数的例子:>>>forninrange(2,10):... forxinrange(2,n):... ifn%x==0:... printn,'equals',x,'*',n/x... break... else:... # loop fell through without fin 阅读全文
posted @ 2013-05-04 09:49 老王python 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 如果你需要遍历一个数字序列,内置函数range()就派上用场了。>>> range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]你可以指定切片的起始值和终值,并且可以取值的步长,并且步长还可以为负数。>>> range(5, 10)[5, 6, 7, 8, 9]>>> range(0, 10, 3)[0, 3, 6, 9]>>> range(-10, -100, -30)[-10, -40, -70]要遍历序列的指数,你可以结合范围(),len()如下:>>> a = ['M 阅读全文
posted @ 2013-05-04 09:47 老王python 阅读(800) 评论(0) 推荐(0) 编辑
摘要: 除了数值,Python可以操作字符串,它可以表现在以下几个方面。包含在单引号或双引号:>>> 'spam eggs''spam eggs'>>> 'doesn\'t'"doesn't">>> "doesn't""doesn't">>> '"Yes," he said.''"Yes," he said.'>&g 阅读全文
posted @ 2013-05-04 09:46 老王python 阅读(755) 评论(0) 推荐(0) 编辑