Python学习函数篇
由 cobra 于 周五, 2008-08-22 17:19 提交。这几天一直在学习Python,今天列出一些Python特有的函数和使用方法
1.lambda,filter,map,reduce,partial用法
# code=UTF-8 from functools import partial def lambdaTest(): "lambda 返回一个匿名函数的引用" add = lambda x, y: x + y print "1 add 2 = %d," % (add(1, 2)) def filterTest(): "filter(func, seq) seq逐一传入func,若func返回True,这当期seq的值放入新的seq中" def odd(x): return x % 2 print filter(odd, range(10)) def odd10(): "10以内奇数" print [i for i in range(10) if i % 2] def sumOdd10(): "10以内奇数和" print reduce((lambda x,y: x + y), [i for i in range(10) if i % 2]) def mapReduceTest(x): "MapReduce实现求X以内计数和" print "Map Reduce sum odd 10 result: %d" % reduce((lambda x,y: x + y), map(lambda x: x if x % 2 else 0, range(x))) def partialTest(): "partial 将参数出入func中形成一个新的func引用, 可以使用partial实现一个subfunction DRY!" sumodd10 = partial(mapReduceTest, 10); print "partial", sumodd10() if __name__ == "__main__": lambdaTest() filterTest() odd10() sumOdd10() mapReduceTest(10) partialTest()
2.修饰器用法"@"
#code=UTF-8 from time import ctime, sleep def tsfunc(func): "创建一个修饰器,有点像Java中的Annotation,但是Python的更容易创建" def wrappedFunc() : print '[%s] %s() called' % (ctime(), func.__name__) return func() return wrappedFunc @tsfunc def foo(): pass if __name__ == "__main__": foo() sleep(4) for i in range(2): sleep(1) foo()
3.生成器yield用法
#code=utf-8 def yield1(): print "step1" yield 1 print "step2" #当调用next遇到yield后返回,下一次调用next时继续执行知道遇到下一个yield为止 yield 2 print "step3" def testYield1(): y = yield1() print y.next() print y.next() #print y.next() def yield2(): i = 0 while True: yield i i += 1 def testYield2(): "每次调用next() 返回i的值" y = yield2() for i in range(100): print "Yield value=%d" % y.next() if __name__ == "__main__": testYield1() testYield2()
从1500公里到4000公里
由 cobra 于 周四, 2008-08-21 14:14 提交。今天看了一下我家小V的里程表,短短2个月居然已经4000公里了。这两个月我们一直为了装修而忙碌,昨天是装修最后一个大项目铺地板,我家选用的是竹木地板,由于没有进行地面找平,所以需要铺设龙骨。铺设龙骨的时候要在地板打很多眼,由于单板内会有管线,所以打眼的时候一定要小心谨慎一些,我家装修的时候是夏季暖气没有水,假如损坏到管线不是很容易察觉,不过还好上周末安装暖气的时候特意的把暖气管线中灌满水,这样在铺设龙骨的时候万一管线破裂可以及时察觉。
由于第一天只有一位工人师傅,所以安装龙骨大概用了一天时间。今天开始正式安装木地板,我是下午到安装现场,这时候客厅已经完成一半,主卧已经完工。两位工人师傅一位负责书房,一位负责客厅剩下的部分。大概是在晚上7点左右终于最后一块地板安装完毕,一切大功告成我家的整体效果已经完全的展露出来。
经过此次装修安装木地板是有这样几点经验:
1.最好能把暖气灌满水,这样做可以及时发现因打龙骨对地板内管线的破环。
2.铺设完龙骨可以在龙骨上面走一走若是龙骨没有打实可以及时发现。
3.安装地板前最好在地面上撒上一点防虫剂,若是没有,花椒也可以,这样可以避免龙骨生虫。
从1500公里到4000公里,我们用了2个月的时间,从选定装修公司,到购买主材,挑选家具,再到装修竣工。2个月时间2500公里,我们终于有了自己的房子,有了自己的家,幸福也由此开始……
Django on windows
由 cobra 于 周一, 2008-08-11 14:31 提交。突然对Python的兴趣大增,只是苦于没有什么实践的机会。现在部门在做一个优惠卷的平台,我负责的是手机客户端,现在由于手机的Apploader端口无法使用,这个客户端开发处于停滞状态,正好借这个时机用Python实现一个Web应用,看了很多Python Web开发的资料,发现Django比较流行(据说是Python圈中Rails),正好通过Django熟悉一下Python。
首先,安装Python,这个很容易下载一个windows版的安装包就可以了。
接下来是安装Django,在Django网站给出的安装方式是
python setup.py install
这步在Windows上没有问题,但是用django创建一个Web应用是通过一个django-admin.py完成的,在linux下安装django时会将django-admin.py这个脚本复制到PATH中,但是在Windows上并不是这样,需要手工设定PATH,将django的bin目录设置到PATH中。
这样我们就可以在任何目录中使用django-admin.py这个脚本创建Django project了。
由于长时间使用Linux,在Windows中会下意识按Tab键,虽然在XP的SHELL中支持Tab,但是XP的SHELL只能提供当前目录的文件名补齐,解决这个问题的办法是在Windows上安装一个cgywin,cgywin不但能提供和Linux一样的Tab补齐功能,还可以使用很多常用的Linux命令,这样就不会为经常在DOS中打ls的烦恼。
在解决玩开发环境问题后,接下来考虑一下IDE的问题,很多人推荐使用Eclipse + Pydev进行开发,我也比较推荐Eclipse,但是Eclipse比较占用资源,在系统资源不充沛的情况下,可以使用一些常用的文本编辑器,如UltraEdit。UltraEdit中的语法增量支持很多语言,但是没有Python,上网查一下可以通过修改UltraEdit的wordfile完成对Python的增量支持。点击这里下载python的wordfile
奥运来了
由 Live Up 于 周四, 2008-08-07 21:22 提交。明天晚上8:08分,无数人期盼已久的奥运会就要召开了,刚才看新闻,明天上午10点在大兴法院举行奥运火炬传递活动,过了明天我们的房子又可以装修了。
7年前的7月13日,北京申奥成功,7年弹指一挥间,虽然之间经历了很多,但还是感觉时间过得太快了,我就要在这么几挥间渡过完所有生命(有一点点悲观)。7年的时光渡过的快,变化更快!中国从申奥成功的喜悦演变为经济的快速发展,人文奥运、绿色奥运、科技奥运随处可见,北京的发展真快呀!今天修缮改造后的前门老街开始迎客了;姥姥家也通地铁了(我家这边明后年也要开通2条地铁线);各个奥运场馆拔地而起;小区、商业街一个赛一个气势,原来一提某小区,很容易找到,现在可不行了,多的记不住呀!北京俨然是一个国际化大都市了,高兴!
昨天经过天安门交通岗楼,发现岗楼四周的顶边还打着“同一个世界,同一个梦想”,地铁里还有很多脸上画着国旗油彩的人……所以今天带了相机打算好好拍一拍,但是还是没拍成,有些小遗憾。不过那么多媒体记者和摄影爱好者也照了不少了,奥运会开始后还会记录下更多精彩、激动的瞬间。
最近谈论最多的就是买奥运会门票了吗?谁是最后点燃奥运火炬的人?奥运圣火会以什么形式点燃?安检、人多、道路不好走……还好8号放假,可以在家安心看奥运了,明天晚上所有答案都会揭晓,让我们一起拭目以待吧:)
还有,今天的日子比较特别,立秋+七夕+奥运会倒计时最后一天!真是个应该好好庆祝的日子啊~~
我家门前有圣火
由 cobra 于 周日, 2008-08-03 21:27 提交。再有5天就是8月8日了,现在圣火正在四川传递,8月6日至8月8日在北京传递。出乎意料的是圣火会路过我家小区,也正是因此6日至8日小区物业要求整个小区停工三天,并在每个单元门张贴了告示。
(小区公告)
这两天家里装修完成了卫生间和厨房的吊顶工作,我们还进行了第一次大扫除,新家逐渐露出面貌。
(工人师傅正在安装吊顶和卫生间吊顶效果)
这周去建材城把需要的电源开关面板买齐了,开始以为花不了多少钱结帐的时候发现居然要625元(我们买的是西门子的,个人感觉西门子的手感比较好)。
(圣火之路和自动通行卷)
今天还有个意外就是从五环上京开路的入口,以前是工作人员给一张白条,今天居然有了自动取卡通道,只需按一下按钮就会自动出一张通行卷,上面还有车牌号码,感觉比较神奇,呵呵。
漫长的一天
由 cobra 于 周日, 2008-07-27 22:15 提交。今天是单号我们的小V终于可以上路了,今天的主要任务是安装热水器和浴霸。计划上午安装浴霸,下午安装热水器。看这样子我们今天要在新房度过漫长的一天。
从五环下来走兴业路,发现路边也张贴奥运会的标志,路灯上悬挂着奥运会的旗帜,虽然大兴没有奥运场馆但是在兴业路上也能感到浓浓的奥运气息。
9:10我们抵达小区,由于三期的邻居已经收房,小区明显比以前人气旺了很多。打开房门发现墙壁明显平整了许多,而第一遍底漆更是让墙壁看上去非常白净。上周工人师傅已经把卫生间,厨房和阳台的瓷砖铺完,虽然还没有做保洁,但是明显感到我们新房正在变得越来越漂亮。
(俯瞰小V和我们卫生间)
(剩下的瓷砖和阳台的地砖)
厨房和卫生间还剩下3箱瓷砖,所以今天又多了一项任务退瓷砖。和安装浴霸的工人师傅联系了一下,他说上午可能赶不过来了,下午才能过来安装。,点郁闷,不过正好可以利用这时间去退瓷砖。我们的瓷砖每箱体积倒不是很大,但是重量却出乎我的意外,刚刚一上手居然没有搬动,看了看净重居然每箱瓷砖重36Kg,比我们买的电视还要重,提提裤子,深吸了一口气,心中暗念“起”,一箱瓷砖随即被我搬了起来,我感觉比我上次搬动48瓶矿泉水还要重。就这样一箱一箱的把瓷砖搬上了我们的小V,小V刚一启动明显感觉后面重物的存在,不过还好小V比较强劲,这些重量对他来讲只是小菜一碟。退砖的过程比较顺利,一共退还了我们515元。
吃过午饭后,安装热水器的师傅先来了,开始安装热水器,师傅拿起的BOSCH,在选好的位置开始打眼,钻头和壁砖磨擦的声音震耳欲聋,不过在第一场钻头和壁砖的较量中,我们的壁砖居然获胜了,钻头在壁砖的釉面上磨出了一个小洞。看来我们壁砖的质量还是相当的好。师傅一连钻了几次才勉强的把眼打好。这个师傅安装热水器的经验丰富,不一会就把热水器装好了,临走的时候还跟我们说,我们瓷砖的质量很好。
安装热水器的师傅刚走没一会,安装浴霸的师傅也到了,这个师傅居然是从我家附近赶过来的,怪不得要下午才能过来。浴霸的安装过程相对热水器要简单的多,先在卫生间房顶打好眼,上上2个螺丝,螺丝上穿两根铁丝把浴霸吊起来,接好浴霸的线,在带电的情况下测试每根线分别对应的功能,然后安装面板,面板安装好后就算大功告成了。
在给这个师傅找递工具的时候,我发现他的书包里还有一个火烧,这也许是他的午饭,也有可能是他的晚餐,今天的天气相当的闷热,我们后面他还要去别的客户家中施工,真是太辛苦了。我对他之前爽约的行为表理解,人家真是太不容易了,临走的时候我对他衷心的说了一声谢谢!愿天气能凉爽一些,愿他好运。
(擦去花片上的污渍)
安装完热水器已是下午的4点30分了,今天是我们在新房呆得最长的一天,虽然天气很热,虽然没有空调,但是我觉得能亲历自己的房子由毛坯变成漂亮的新房的过程是一件相当快乐的事情。愿我们未来一切顺利!
报错站
由 cobra 于 周三, 2008-07-23 10:15 提交。今天早上坐地铁,到复兴门的时候司机的失误没有报站,等到了西单才开始“下站西单”,直到天安门东站才发现,慌忙调整未果后,司机开始向车厢的乘客“人肉广播”,“下一站王府井,有下车的乘客提前准备好票卡,有序出站”。到了王府井兴许是司机有点紧张竟然说成“王府井站到了,请下车!”猛地一听还以为让所有乘客下车呢。
我觉得地铁司机需要锻炼一下口才,记得刚开始使用自动检票系统的时候,每一站都会听到司机在说“下车的乘客请您提前准备好票卡”。简简单单的一句很多司机语速很快,吐字相当模糊,猛一听还真不知道他们在说什么。也许是紧张,也许是不情愿,但是我想既然要说不如轻轻楚楚的说出来,这样含糊不清,岂不是白说。形式主义害人呀!
灯AND沙发
由 cobra 于 周日, 2008-07-20 21:35 提交。今天是限行的第一天,我们的VV是单号所以只能依赖公共交通。昨天下午在西四环集美看到了一款沙发感觉比较适合我们家,于是今天再次前往准备把这个沙发入手。经过一番讨价还价终于以2500元的价格拿下。
(沙发的外形和我们选中的面料)
由于现在装修正在进行,很快就需要安装灯具,今天我们决定顺便在看看灯,集美家居城三层有很多卖灯的,由于我们选择了竹木地板,灯具的选择我更偏向于中式风格。中式风格的灯有很多,像宫灯样式的,仿羊皮样式的,陶制的,还有青花瓷样式的。一款仿羊皮样式的顶灯我觉得甚是不错,放在家里客厅一定效果很好。
(仿羊皮样式的顶灯和宫灯样式餐灯)
(陶制餐灯)
题外话,今天田野同学带我们去白堆子吃烤翅,味道还不错,地点在工商大学东校区门口东侧。(我一共吃了十几串,现在肚子还不是很饿,有点暴饮暴食了,呵呵~!)
IKEA大抢劫!
由 cobra 于 周日, 2008-07-20 00:40 提交。今天是限行前的最后一天,明天就要开始单双号了。我们的VV是单号所以明天放假一天,今天的主要任务是去新家看一下装修的进度,由于周五安装的防盗门没有安装门牌号码,我们要去建材城找步阳的人要一个。还有我们上周订的西门子热水器今天送货。
(我家的旧门和工人师傅正在安装的新门)
目前新家卫生间正在贴瓷砖,油工师傅在给家里面的吊顶刮腻子,为过几天的上漆做准备。厨房的墙上的瓷砖基本贴完了,但是由于电工师傅和油工师傅之间没有协调好,有个电源的暗盒没有穿线,所以还要拆下两块瓷砖,把线穿好后重新贴上。大概下周末就能把全部的瓷砖搞定,同时上漆即将开始。我们今天还把房间的颜色确定下来,书房是柳叶绿,卧室是雅白色,客厅和餐厅是白鹭色,装修公司的老板给我们免去了200元添色的费用。哈哈!
(工人师傅正在做防水和厨房瓷砖小样)
(油工师傅正在刮腻子和卫生间小样)
下午到集美家居看家具,有个布艺的沙发很是吸引我,还有在2层的灯具展厅看到青花瓷系列的灯具也很是不错,考虑入手为新家添置一个。
今天的重头戏要算是去宜家家居了,虽然两星期前我们曾经去过一回,但是这周由于是宜家特价,所以今天再去那碰碰运气,看看能买到哪些好东西。开车刚刚到东四环,行驶速度就开始放慢了,这是在平常不多见的,该不会大家都去宜家“大抢劫”吧。等到了宜家果然不出所料真是People Mountain People Sea。门口的路上还有因为过于拥堵造成的交通事故,地下停车场也是很久都找不到车位。
大概过了10分钟的时间我们才把车停好。老规矩还是从上至下开始逛,一路走来没有发现什么特别想买的物品。而且特价的商品不过就是那么几件,到是人变得很多。和上次一样我们还是抱着“抄袭学习”的态度浏览。宜家的衣柜设计的很人性化,我们决定抄袭一下,买了一些衣柜中所需要的小零件,回家DIY。在3楼转完大概已经是9点了,我们在他们的用餐区享受一份20个的肉丸晚餐,不错不错。
(在宜家购买的小黑板)
来到2楼开始GG说要买碗,仔细挑选了一下发现那种碗不是很齐,所以便放弃了购买的想法,但是7.9元/4件的调料灌倒是相当的实惠,我们还在这层买了一个时钟,一个地灯,缴费的时候看到一个给小朋友的黑板149元,本来想在书房安置一面涂鸦墙,看到这块黑板后决定由它取而代之。我们到款台的时间已经是10:05了,已经超过宜家的营业时间,不过还有怒多怒多的人等待结帐,经过20分钟的等待,终于完成了结帐。我们此次在宜家消费了522元。走的时候款台的人依旧怒多,但是停车场的车已经少了很多。
(绿面超人,我 & GG)
伴着圆圆的月亮,我们结束今天一天的行程。(最后送上我们最新的玉照,题目是绿面超人!哈哈!)
最新评论
2 天 14 小时 前
4 周 6 天 前
4 周 6 天 前
10 周 1 天 前
10 周 1 天 前
10 周 1 天 前
11 周 1 天 前
11 周 2 天 前
11 周 2 天 前
11 周 2 天 前