随笔分类 -  Python

python三元运算符
摘要:在c、php里面,都有三元运算符,如: a = b?c:d意思是 b 的运算结果如果是True,那么整个表达式a就等于c,反之如果b的运算结果是False,那么a就等于d。这样写起来简洁又高效,否则就得写个一if else块,起码3 4 行。但是python一开始却没有三元运算符,后来由于广大程序猿... 阅读全文

posted @ 2014-07-18 10:23 李皮筋 阅读(864) 评论(0) 推荐(0)

python导入上级目录中的模块
摘要:python导入同级别模块很方便: import xxx要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件 from dirname import xxx要导入上级目录,可以使用sys.path: 首先sys.path的作用是:当使用import语句导入模块时,解释器会搜... 阅读全文

posted @ 2014-07-16 13:57 李皮筋 阅读(68953) 评论(0) 推荐(3)

python 向上取整ceil 向下取整floor 四舍五入round
摘要:#encoding:utf-8import math#向上取整print "math.ceil---"print "math.ceil(2.3) => ", math.ceil(2.3)print "math.ceil(2.6) => ", math.ceil(2.6)#向下取整print "\nm... 阅读全文

posted @ 2014-05-07 17:48 李皮筋 阅读(103120) 评论(1) 推荐(2)

pyhton 查找一个数的所有因子 以及 判断一个数是否是质数 两个小脚本
摘要:最近看到一个网站, 欧拉计划。挺好玩,都是一些算法题。这是本站:http://projecteuler.net/problems 这个是中文站:http://pe.spiritzhang.com/下面贴两个小脚本,低端玩具1.找出一个数的所有因子:#encoding:utf-8import math... 阅读全文

posted @ 2014-05-07 17:32 李皮筋 阅读(3865) 评论(0) 推荐(0)

python多进程的理解 multiprocessing Process join run
摘要:最近看了下多进程。一种接近底层的实现方法是使用 os.fork()方法,fork出子进程。但是这样做事有局限性的。比如windows的os模块里面没有 fork() 方法。windows:。linux:另外还有一个模块:subprocess。这个没整过,但从vamei的博客里看到说也同样有局限性。所... 阅读全文

posted @ 2014-05-05 19:39 李皮筋 阅读(41775) 评论(8) 推荐(13)

python yeild使用
摘要:闲的蛋疼又想起之前看到的文章,想想还是拿来复习一遍写进博客里。原文链接:https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/yeild可以把普通的function函数,变成 generator生成器。由原来的retu... 阅读全文

posted @ 2014-05-04 20:39 李皮筋 阅读(571) 评论(0) 推荐(0)

多用pip,少用easy_install。
摘要:在此之前装python包,用过easy_install,也用过pip,但都是照猫画虎,在网上找命令完了装上就完事。现在稍微整理一下。easy_install: python开发有一个工具,setuptools.exe。是用来发布和下载安装python包的工具。 在windows上这就是一个.e... 阅读全文

posted @ 2014-04-04 16:39 李皮筋 阅读(542) 评论(0) 推荐(0)

python urllib2模块携带cookie
摘要:今天干活遇到一个事。有一些网站的一些操作非得要求你登陆才能做,比如新浪微博,你要随便看看吧,不行,非得让你登陆了才能看,再比如一些用户操作,像更改自己的资料啦,个人的隐私啦巴拉巴拉的。想抓取这样的url的话,就得一边携带cookie一边搞。今天遇到的问题就是mediawiki的编辑文章这个操作,wi... 阅读全文

posted @ 2013-12-11 23:06 李皮筋 阅读(4746) 评论(0) 推荐(0)

两个月没来了 今天开始要学会总结
摘要:干活要灵活。最近写一个将自动化测试结果自动更新到内网的wiki上的小脚本,wiki环境是mediawiki搭建的,上面就是一些文章的展示。开始我的思路1是:python直接操作mediawiki的数据库,直接找到文章表,直接增删查改多好啊。后来发现字段里面类型比较不好整,BLOB这玩意没接触过啊。擦,拉到拉到。后来我的思路2是:看mediwiki的源码和文档,找到更新文章的api,然后调用相应的增删查改方法就可以了。后来发现第一我的英文太差,第二mediawiki整体的结构说的不是很细,看不懂。毕竟这不是框架,不会一步一步告诉你怎么回事。mediawiki的工作更多的是让你快速搭建wiki环境 阅读全文

posted @ 2013-12-11 00:45 李皮筋 阅读(243) 评论(0) 推荐(0)

Python生成器 yield
摘要:迭代器与list相比较,就for in句型循环拿数据而言: 用list写很简洁,但如果list数据过大,会很消耗资源。 用iteration 迭代器写,则不会消耗那么多资源。他会随用随取,用一个拿一个。但是你要会先写一个迭代器类,然后才能for in,这样就很不简洁。有没有既像list那样简洁,又像迭代器那样省资源的方法呢。yield 生成器来了:#非波那且数列:def func(max): #参数表示要返回前max个非波那且数 #n是计数用,a b分别为第一和第二个肥波那切数 n, a, b = 0, 0, 1 while n < max: yield b... 阅读全文

posted @ 2013-09-26 23:49 李皮筋 阅读(413) 评论(0) 推荐(0)

Python迭代器
摘要:python迭代器具备两个基本条件:1 实现__iter__方法,返回自身。2 实现next方法,返回下一个元素,并且当元素没有了要抛出StopIteration异常。另外有说法是:一个实现了__iter__的对象是可迭代的,一个实现了next方法的对象是迭代器。class myiter: #接收一个迭代数值 def __init__(self, i): self.i = i #实现__iter__,返回迭代对象自身 def __iter__(self): return self #实现next def next(self): ... 阅读全文

posted @ 2013-09-26 16:53 李皮筋 阅读(309) 评论(0) 推荐(0)

回顾一下 递归和迭代
摘要:递归是自己调用自己迭代是根据已知值一个个推算出未知值#递归def f(i): if i <= 10: return i + f(i+1) else: return 0#迭代s = 0def f(): for i in range(3): s += iprint s 阅读全文

posted @ 2013-09-26 16:00 李皮筋 阅读(178) 评论(0) 推荐(0)

python 零散记录(七)(下) 新式类 旧式类 多继承 mro 类属性 对象属性
摘要:python新式类 旧式类: python2.2之前的类称为旧式类,之后的为新式类。在各自版本中默认声明的类就是各自的新式类或旧式类,但在2.2中声明新式类要手动标明: 这是旧式类为了声明为新式类的方式class A: #手写把元类 metaclass 给 type __metaclass__ = type pass#或者这样写,效果是一样的class B(object): #手动指定继承自object类,object类是最初的类,一切类都是object的子类,是祖宗 pass 对于class A的写法,我的理解是:所谓一切皆对象,类也是对象!类的实例是对... 阅读全文

posted @ 2013-09-04 22:01 李皮筋 阅读(664) 评论(0) 推荐(0)

python 零散记录(七)(上) 面向对象 类 类的私有化
摘要:python面向对象的三大特性: 多态,封装,继承多态: 在不知道对象到底是什么类型、又想对其做一些操作时,就会用到多态 如'abc'.count('a') #对字符串使用count函数返回a的数量['a','b','c'].count('a') #对列表使用count返回a的数量 类型虽然不同,但是都可以调用count()来实现同样的目的,这就是多态。 毁掉多态: 一些类型检查会毁掉多态,如type isinstance issubclass等等。 实际上应该尽量少用这些,而多用多态。创建自己的类 阅读全文

posted @ 2013-09-03 23:26 李皮筋 阅读(387) 评论(0) 推荐(0)

python 零散记录(六) callable 函数参数 作用域 递归
摘要:callable()函数: 检查对象是否可调用,所谓可调用是指那些具有doc string的东西是可以调用的。函数的参数变化,可变与不可变对象: 首先,数字 字符串 元组是不可变的,只能替换。 对以前的形参实参的理解适用于这些不可变对象。即形参实参互不影响。 但是对于可变对象如list dict,形参与实参就会互相影响。 如果想拿到一个副本从而不影响原变量,用列表分割:mylist[:]收集参数: func(a,*b): b接受除了第一个给a的余下参数,以元组形式储存 func(a,*b,**c): a接受完,剩下的给b,如果有x=xx这种形式的关键字参数则给c作用域... 阅读全文

posted @ 2013-09-02 22:17 李皮筋 阅读(1083) 评论(0) 推荐(0)

算法 python实现(三) 快速排序
摘要:算法学起来真费劲啊,智商只够捉只鸡的。昨晚没看明白就没电了,过两天要考虑偷电了...今天看看快速排序,有一个博客写的很好,通俗生动形象,适合我这样的算法大白菜。推荐一下http://www.cnblogs.com/morewindows/category/314533.html里面的快排的形象比喻特别到位,我就借花献佛了。大体情况是这样的:1. 拿一个数作为基准数(我一般都是拿第一个数,就是a[0]),比这个数小的都放在他的左边,比这个数大的都放在他的右边。这样就分出来了两个小序列。2. 然后在分出来的两个小数列中再分别进行这样的操作,直到小序列只剩一个数。下面看看具体怎么做:这里有一堆数 a 阅读全文

posted @ 2013-08-29 21:14 李皮筋 阅读(400) 评论(0) 推荐(0)

算法 python实现(二) 冒泡排序
摘要:首先说一下 冒泡排序 是怎么做的:总体的想法是,把小的轻的浮上前面去,把大的重的沉到后面去。这样设置两个指针,i j,1.i标识每一趟循环。这一趟的目的是把后面那些未排序的数列中最小的浮上前面去。2.j标识的就是一趟中,具体是怎么找到最小最轻的数的过程。j从末尾开始,逐个与自己前一个数比较大小,如果后面的数小于前面的数,就交换位置,让小的往前窜一个,否则就不动。然后j--,指向前一个,再比较相邻的数大小,直到 j 循环到i的位置,因为i之前的都是排序好的,不用在排了。3.一趟下来,整个数列中最小最轻的就浮到前面去了,然后i++,把i指向第二个位置,也就是要在剩下的数列中找到第二轻的数然后放着i 阅读全文

posted @ 2013-08-27 22:44 李皮筋 阅读(670) 评论(0) 推荐(0)

算法 python实现(一) 基本常识
摘要:我算法和数据结构都不好,笨的一比。现在的目标是熟悉常见和经典算法,看本站两个大牛的博客,在这也推荐一下,特别好,除了算法其他的技术也很不错。Vamei :http://www.cnblogs.com/vamei/tag/%E7%AE%97%E6%B3%95/一线码农:http://www.cnblogs.com/huangxincheng/category/340146.html然后自己理解,再用python实现。每天学习一个算法并记录。排序和查找算法是最常见的算法问题了排序算法大体分为; 交换排序:冒泡排序 快速排序随学随写,持续更新。。。 阅读全文

posted @ 2013-08-27 22:10 李皮筋 阅读(274) 评论(0) 推荐(0)

python 零散记录(五) import的几种方式 序列解包 条件和循环 强调getattr内建函数
摘要:用import关键字导入模块的几种方式:#python是自解释的,不必多说,代码本身就是人可读的import xxxfrom xxx import xxxfrom xxx import xx1,xx2,xx3from xxx import *import xxx as xxxfrom xxx import xxx as xxx序列解包赋值:x,y,z = 1,2,3 #右侧1,2,3实际是一个(1,2,3)的tuple,然后解包出来再分别赋值x,y = y,x #同理,交换赋值if和布尔:#True False 实际就是1 0 同样可拿来运算True + 1 == ... 阅读全文

posted @ 2013-08-27 00:00 李皮筋 阅读(487) 评论(0) 推荐(0)

python 零散记录(四) 强调字典中的键值唯一性 字典的一些常用方法
摘要:dict中键只有在值和类型完全相同的时候才视为一个键:mydict = {1:1,'1':1} #此时mydict[1] 与 mydict['1']是两个不同的键值dict的一些常用方法:clear(): #清空字典copy(): #浅复制字典copy.deepcopy(): #深复制get('xx', 'return'): #访问元素不存在时返回None,或者手动指定返回值has_key(): #检查字典中是否含有键,相当于 in 关键字items(): #将字典以列表[(k,v),(k,v)]的形式返回iteritem(): 阅读全文

posted @ 2013-08-25 15:35 李皮筋 阅读(1096) 评论(0) 推荐(0)

导航