初学python的菜鸟

108 阅读3分钟

《python从入门到实践》外星人入侵项目体会python的特点

初学python

刚学python不久,选择了《python从入门到实践》这本书,书大致分为两部分,一部分是基础知识,讲python的语法,第二部分则是具体的小项目,这倒挺符合这本书的名字入门到实践,接下来我主要就是从一个python初学者的角度来浅显的向各位讲述一下我对于python这门语言的理解

项目初始

这个项目总的来说很简单,就是将游戏的各个元素单独设置为类,然后编写类的具体功能,对于游戏元素的移动,碰撞检测等等都是通过调用pygame库的sprite类实现的,前期对项目的实施给我的感觉就是:python是真的简洁,而且实现一些功能的库函数也都很方便,例如完成事件的检测,两行函数就能实现

逐渐意识到不对劲

随着项目的慢慢实施与跟进,bug慢慢变得频繁,对于我这样的初级菜鸟来说debug抵得上半条命,但多看看想想bug差不多也都能解决,直到昨天晚上,一个bug我看了四个小时,最后在SegmentFault上找到的解答,编译器报的是"Atrribute Error: 'Group' object has no attribute 'rect'",直接给我干懵了,最后才知道是函数参数的问题,在一个函数定义与调用时参数的顺序不一样导致的错误。但是,今天继续给项目添加功能时又出现了类似的bug——"AttributeError: 'pygame.surface.Surface' object has no attribute 'rect'",又整了半天没搞出来,崩溃了,想着算了,这个项目本来也只是用来练练手的,但还是有一些感慨的,代码放到github上了——[外星人入侵]https://github.com/3fdh-h/AlienInvasion),希望有大佬可以帮忙指正一下,感谢,程序员需要共同进步!

一些想法

对于在编写代码过程中的一些体验,我有一些自己对python和编程的理解,当然只在很表层的理解,希望有大佬可以指正或者补充,感谢。

接下来我们将python与C语言进行对比会发现,这是两个极端,简单与复杂,慢于快,简洁与繁杂,但这是不同语言的不同特点。python的语法虽然简洁,但是很容易在格式或者是参数传递过程中产生错误,而且有一些错误编译器是不会报出来的,因为它符合语法,但是在实际调用中是不行的;在这方面古老的C语言仿佛要做的更好,严格的语法产生的是更少的低级错误。正如人类社会,自由必须建立在规则的基础上,没有绝对的自由,如果一个语言的语法自由到了极致,那必不可能是一门好的语言,希望这些浅显的理解对我后面的学习能有一些帮助吧