本次实习是我们大学生涯的第一次实习,为期16天。这次学习的主要内容是python语言与人工智能,下面是我对本次实习做出的总结。
Python基本数据类型和基本操作和java等语言并无什么大的差异,值得注意的是python里面所有数据类型都是句柄操作,也比java面向对象的特性更加深入。Python string字符串编码也是利用了unicode比较方便使用。
Python的关键数据结构:第一个是list ,是以[]包括起来的数据结构,然后是可变数据类型,意思是里面的句柄可以改变,增加删除元素的方法我就不说了,非常灵活,不仅可以正向取数据还可以反向下标取数据。例如[1,2,3][-1]取倒数第一个数出来。
第二个数据结构是tupe,与list类型,但是它里面的数据句柄是不可变得,这里注意是句柄不可变不代表数据就不可变,举个例子:(1,2,3,[‘x’,’y'])这里[‘x’,’y']这个list句柄不可变,但是它里面的x,y这两个元素确实可以变的。取数的规律就像C中的二维数组,不多罗列。
接着照着语言的特性,到循环了。以前我觉得python的判断和循环怎么这么不正常,现在看起来,python的判断循环的语法糖简直太符合心意了,就像伪代码,写起来蛮简洁,这个也没什么好说的。
到了dict了,这里的dict其实就是对应的别的语言的map,是一种二维的映射关系,也是用空间换时间的一种方式,同样的和前面的list对比,也是添加删除数据都异常灵活,如果key找不到会抛出异常。而且因为是用类似hashmap的key-value查找方式,所以速度会很快,增加大量数据都不会减慢数据的查找删除工作。
与此同时相比较list,当数据类较大时候,find和delete操作都要付出较大的代价。因为key需要用到hash值,所以key应该为不可变对象,这样才合理,事实也是这样。像List可变对象就不能作为hash的key。tuple是可以的,经试验,tuple里面包含list然后拿去做key,结果也不行,说明了key只能是不可变对象,里面不能包含List等可变对象。Dict返回值的时候还可以指定默认值这个也是个小的方便点。找不到key时候的做法,例如dict.get(9,-9)这样的合理性在于我不确定key有没有,我又不想总是去捕获没有key异常很麻烦,就可以用默认值返回作为辨识数字。
然后下个有了dict,下个就是set,无他就是类似与hashset单一属性的结构,就是一个集合,和集合操作一样,重复添加相同元素没有效果,但是set是可以动态改变内容元素的,这里set就没有比较好的直接表示符号了,需要初始化时候,这样para=set([1,2,3]),我觉得这个表示稍显麻烦。Python里面str也是不可变类型,一如java等面向对象语言。
通过半个月的学习,我学习到了很多东西,掌握了基本的python语言。感谢老师们在学习和生活上对我们的帮助,让我们在这里轻松学习。这次实习让我受益匪浅,期待下次来能学到更多对我们有益的知识。
相关推荐: