Python学习周总结(18.03.05 - 03.09)

   本周是培训的第二周,依旧是一大波基础知识点来袭,不过课后习题的难度较上周来讲有所增加,可谓是真正进入了编码阶段,其中笔者认为需要注意的知识要点如下:
   1. 函数
    概念:为了减少重复代码的编写,我们可以把程序中相对独立的功能模块抽取出来,以便将来可以重复地使用这些功能模块, Python中的函数就是代表了这样的功能模块。
    小知识点:
    1)函数的递归调用(最多998次)  ---> 由收敛条件(让递归在有限的次数完成或者进行回溯)及递归公式两个关键要素构成,几乎可以用循环完成的任务用递归亦可,但是在处理阶乘和累加等大计算量任务时建议采用循环来完成。
    2)文档注释的查看,选中函数,Ctrl + Q 即可查看该函数的文档注释,平时有余力的情况下建议勤写文档注释,方便自己日后回忆及他人使用。
    3)python的函数与其它语言的函数一个最大不同点在于可变参数(*args)的使用,它使得函数的参数个数可以有0个或任意多个,灵活便捷。
    4)在编程的过程中, 尽量避免全局变量的使用,用函数括起来 (迪米特法则:最少知道原则,代码最好不要和其他的代码直接建立关系),在程序中,变量的作用域严格遵守“LEGB”顺序( L:局部作用域 E:嵌套作用域 G:全局作用域 B:内置作用域 ),直接在函数内操作全局变量加关键字global,操作外嵌函数变量加关键字nonlocal。
    5)如果函数定义冲突了,后定义的将覆盖先定义的。

   2. 模块
   导入模块的顺序:内置的放在最前面 ,三方的居中,自己编写的放最后。同种类型的按字母表顺序排列。
   注意:
          1)如果模块冲突了,依旧是后导入的覆盖先导入的。
          2)为了避免自定义模块在调用的过程中涉及其中可执行代码的运行,将可   执行代码放在(if __name__ == "__main__":)之下,如此一来,只有直接运行时该部分语句才被执行( __name__: python内置的隐含变量,代表了模块的名字,直接执行时为__main__,其他地方调用执行时为模块名)

    3. 字符串
    主要是一些字符串的常规操作,遇到不懂的现查现用即可。

    4. 列表(容器之一)
    list - 列表,要点:
           1)不要直接对原列表进行操作,建议使用副本,保持原件的完整性。
           2)list构造器和生成器的掌握(前者省时费空间,后者省空间费时,具体应用视具体情况而定)。
           2)循环遍历时使用enumerate()既可以拿到索引又可以拿到值,尤其适合对嵌套列表的指定元素进行操作。

    5. 字典(容器之二)
    dict - 字典,使用键值对的方式进行存储,无序,不支持下标操作,可通过键来查找对应的值。同时,字典查找数据要比列表快。

    6. 元组(容器之三)
    tuple - 元组, 只读,有序,不能改写其中的元素(设计理念:不变模式),如果想放入不同的数据类型,且保证不变,建议用元组,否则建议用列表。同时,创建元组的时间比列表少一个数量级,占用的空间也更小。

    7. 集合(容器之四)
    set - 集合,不允许重复元素出现,无序,不支持下标操作。注意在使用 pop()进行删除操作时会随机删除元素,因为无法输入下标,所以和列表的pop()操作不一样。列表、集合、元组之间可以相互转换,转set时会去除重复元素。

    8. 对象与类
   对象
   1)一切皆为对象。
   2)对象都有属性(静态特征)和行为(动态特征)。
   3)每个对象都是独一无二的。
  4)对象一定会归属到某个类(类:抽象概念 对象:具体概念)。

   类
   1)对象的蓝图和模板,有了类就可以创建对象。
   2)定义类需要做两件事:数据抽象(抽取对象共同的静态特征,即属性 | 找名词)和行为抽象(抽取对象共同的动态特征,即方法 | 找动词),我们定义一个类实际上是把数据和操作数据的函数绑定在一起,形成一个逻辑上的整体,这个整体就叫对象,将来任何时候想使用这种对象时直接复用这个类就可以了。
   3)自己定义的类,每个单词首字母大写。建议使用驼峰命名法。

   面向对象的过程
   1)把一大堆对象共同的特征和行为总结归纳成类。
   2) 生成对象。
   3) 给对象传递信号去做事。

   除了基础知识的学习外,本周的收获还在于通过持续不断的烧脑练习来提升了自己考虑问题的能力,bug-debug过程对耐心的培养。从猜拳,猜数字,井字棋等几个简单的小游戏,到周末作业奥特曼打小怪兽,线段类的创建,明显感觉到任务难度的提升。这里不妨对几项周末作业的要点进行分享:
   1)不给clock构造器传入时间,直接用系统时间
    要点:系统时间的获取(时、分、秒)
           import time
           hour = time.localtime().tm_hour   # 时
           minute = time.localtime().tm_min   # 分
           second = time.localtime().tm_sec   # 秒

    2)倒计时时钟,时间结束 --> 提示时间到
    要点:倒计时的处理
    # 结束情形 00:00:00
    if self._second == 0 and self._minute == 0 and self._hour == 0: 
        return  xxx  

    if  self._second > 0:   
        self._second -= 1
    elif self._second == 0 and self._minute > 0:
        self._second = 59
        self._minute -= 1
    elif self._minute == 0 and self._hour > 0:
        self._minute = 59
        self._second = 59
        self._hour -= 1

    3)用面向对象的形式猜数字(1-100)(机出随机数人猜)
    要点:类的设计 -->属性:1)随机数   2)人猜数
                                   方法:1)猜数       2)反馈(大了、小了、正确)

    4)定义线段, 可判断平行、相交
    要点:平行,相交的判断
               平行  -->  两条线段斜率相等则平行
               相交  -->  快速排斥实验(以两条线段为对角线分别建立矩形) - 跨立实验(其中涉及矢量的加减、矢量叉积的计算),难在数学而非程序本身。

    5)奥特曼打小怪兽(10 vs 10)
    要点:类的设计及特殊情况的处理
               类:
                     属性:1)奥特曼 --> 代号、hp(100)、技能(普杀-10、必杀-20)
                                2)小怪兽 --> 同上
                     方法:
                                1)奥特曼 --> 攻击、状态显示、掉血、返回血量、返回代号
                                2)小怪兽 --> 同上
                特殊情况:
                       1)hp=0时不能发动攻击
                       2)一方团队成员剩余数量为0时另一方团队获胜

   本周的作业量虽然较大打乱了提前看视频的计划,但还是学习了修改内存,可以做到通过程序,结合CheatEngine(用于获取内存地址)、WndSpy(获取窗体信息)两款软件对植物大战僵尸中的阳光值进行修改๑乛◡乛๑。后续的学习安排将会继续以听课-练习-看博文-自学的形式开展下去,希望自己的水平如几何级数般增长下去。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容