python如何优雅的打飞机】的更多相关文章

这是一个打飞机的游戏,结构如下:     其中images中包含的素材为   命名为alien.png   命名为ship.png 游戏效果运行是这样的:     敌军,也就是体型稍微大点的,在上方左右移动,并且有规律向下移动.我军目标,消灭所有飞机.但是屏幕上最多只展现3颗子弹. 一旦,我军飞机与敌军飞机碰撞,或者敌军飞机抵达底部.我军损失一条生命,一共三条. 敌军飞机全部消灭完,则到下一关,移动速度会更快. 我军每消灭一架敌军飞机获得积分,积分最高者会在界面显示. 游戏源码如下: #alie…
python 如何优雅地退出子进程 主进程产生子进程,子进程进入永久循环模式.当主进程要求子进程退出时,如何能安全地退出子进程呢? 参考一些代码,我写了这个例子.运行之后,用kill pid试试.pid是主进程的pid.当然子进程的也没问题. 1)如果kill pid为子进程的pid,当所有子进程都kill掉了,主进程就关闭了.这也是我们想要的结果. 2)如果kill pid为主进程的pid,主进程向子进程发送退出信号,然后等全部子进程关闭后退出. 保证了主进程在所有子进程退出之后退出. #-*…
友情链接 让Python更优雅更易读(第一集) 1.装饰器 1.1装饰器特别适合用来实现以下功能 运行时校验:在执行阶段进行特定校验,当校验通不过时终止执行. 适合原因:装饰器可以方便地在函数执行前介入,并且可以读取所有参数辅助校验. 注入额外参数:在函数被调用时自动注入额外的调用参数.适合原因:装饰器的位置在函数头部,非常靠近参数被定义的位置,关联性强. 缓存执行结果:通过调用参数等输入信息,直接缓存函数执行结果. 注册函数:将被装饰函数注册为某个外部流程的一部分.适合原因:在定义函数时可以直…
这是一个打飞机的游戏,结构如下: 其中images中包含的素材为 命名为alien.png    命名为ship.png 游戏效果运行是这样的: 敌军,也就是体型稍微大点的,在上方左右移动,并且有规律向下移动.我军目标,消灭所有飞机.但是屏幕上最多只展现3颗子弹. 一旦,我军飞机与敌军飞机碰撞,或者敌军飞机抵达底部.我军损失一条生命,一共三条. 敌军飞机全部消灭完,则到下一关,移动速度会更快. 我军每消灭一架敌军飞机获得积分,积分最高者会在界面显示. 游戏源码如下: #alien_invasio…
枚举 不要这么做: 全选复制放进笔记 i = 0 for item in iterable: print i, item i += 1 而是这样: 全选复制放进笔记 for i, item in enumerate(iterable): print i, item Enumerate可以接受第二个参数,例如: 全选复制放进笔记 >>> list(enumerate('abc')) [(0, 'a'), (1, 'b'), (2, 'c')] >>> list(enume…
目录 前言 涉及到的技术 优雅切割 总结 一.前言        前面一篇文章(使用Python实现子区域数据分类统计)讲述了通过geopandas库实现对子区域数据的分类统计,说白了也就是如何根据一个shp数据对另一个shp数据进行切割.本篇作为上一篇内容的姊妹篇讲述如何采用优雅的方式根据一个shp数据对一个栅格影像数据进行切割.废话不多说,直接进入主题. 二.涉及到的技术 本方案涉及以下技术点: geopandas:已经在上一篇文章中简单介绍. numpy:这是一个开源的数据分析处理库,非常…
示例代码和引用的语录都来自Raymond的演讲.这是我按我的理解整理出来的,希望你们理解起来跟我一样顺畅! 遍历一个范围内的数字 for i in [0, 1, 2, 3, 4, 5]: print i ** 2 for i in range(6): print i ** 2 更好的方法 for i in xrange(6): print i ** 2 xrange会返回一个迭代器,用来一次一个值地遍历一个范围.这种方式会比range更省内存.xrange在Python 3中已经改名为range…
一.学习python有一段时间了,总体上手还是挺好的,但是有些东西还是和Java存在着一定的区别,这里主要是通过学习,然后自己去编写一个案例.从中学习到的一些东西,这里分享出来,如果存在不正确的地方还请指出,因为刚学可能认识的还不够清楚.这里主要是记录一下自己在实际开发过程中遇到的一些问题,总结出来. 二.和Java存在的区别的地方 1)导包 JAVA中的import,直接导入的是class,或者改包下的所有class 文件,最小单位就是class python的import a.如果需要从其他…
枚举 不要这么做: i = 0 for item in iterable: print i, item i += 1 而是这样: for i, item in enumerate(iterable): print i, item enumerate可以接受第二个参数,例如: >>> list(enumerate('abc')) [(0, 'a'), (1, 'b'), (2, 'c')] >>> list(enumerate('abc', 1)) [(1, 'a'),…
背景 看到这个标题你可能想一个分块能有什么难度?还值得细说吗,最近确实遇到一个有意思的分块函数,写法比较巧妙优雅,所以写一个分享. 日前在做需求过程中有一个对大量数据分块处理的场景,具体来说就是几十万量级的数据,分批处理,每次处理100个.这时就需要一个分块功能的代码,刚好项目的工具库中就有一个分块的函数.拿过函数来用,发现还挺好用的,传入列表和分块大小,然后就能遍历取出分好的数据.调用方式如下: from xxx import chunk_fun chunk_list = chunk_fun(…