python 结课总结与收获
一个学期的python课程就这样结束了,过的很快啊,总想总结点什么,但是打开Typora的时候却又不知道该写点什么了。
学校开设的python课程,为数字媒体技术的学生讲的python课。最终考试是笔试考试,就是手写代码的那种,可能这种手写代码的要求会有点奇怪吧,但是我无所谓了,大一下学期python二级和C语言二级都过了,手写代码还练习过,肯定没问题了。
刚开学的时候还想看看能不能整个免修啥的,后来想了想,还是谦虚一点吧。一点一点跟着课堂上学,没准还能学到一些以前不知道的细小的点子。现在上完了,好像也确实知道了几个细小的点的解释。
课堂收获
- 变量交换,
a, b = b, a
其实本质上是打包和拆包,右边是打了个包,然后再以拆包的方式赋值给交换后的变量。 - 可能更大的理解上的收获还是爬虫,有两节课老师讲到了爬虫,我知道下载图片的原理了,其实就是下载流式的二进制文件,把他保存成一个文件。
- 对爬虫的本质的理解,爬虫其实是通过获得一个网页里的a链接来实现在一个网站里多个页面不停的游走,每到一个页面就获得一些信息,这才是爬虫,而我们做的那些其实只是批量下载,只是一个页面的。
- 对字符串格式化又熟悉了一下,比如居中之类的
- 海龟画图其实是可以整出来两个海龟一起画图的,这个我还是看到课堂上有个同学写代码写错了,居然有两个海龟在动,才发现的。
- 知道了有processing这个东西,它的内核是jython,顺便也了解了jython,他不支持
f“{变量}”
这种字符串的写法 - 学会了用processing做一些动态的小动画,挺有意思的,只是唯一想吐槽的一点就是processing的写代码体验太不好了。
- 通过小球碰撞以及泡泡游戏,又一次熟悉了面向对象的使用。为了做球与球碰撞的方法,复习了一点数学向量的东西,甚至高中解析几何的东西。
- eval函数比想象中的要强大,他可以接收各种表达式,返回解析后的结果,以至于可以用字符串的方式做到一行代码实现阶乘。
其实我感觉对于我来说更多的收获来自于自学,因为课上讲的内容大部分还是学过了。我自学的收获的话,一部分是来自于《流畅的python》这本书,一部分是来自于自己做一些python的小脚本。
《流畅的python》这本书里的收获
- 我知道了有函数注解这个东西了,规定了参数以及返回值的类型,其实只是给编辑器和人写代码的时候用的,真正运行的编译器不会去管这个,但是还是能给我们写代码的时候提供不少的帮助。
- 我知道了更多的魔术方法,可以重载运算符,用原生的运算符号,来实现自定义的加减乘除效果。
- 知道了抽象类和抽象基类应该怎么写。
自己做小脚本、小项目(瞎玩儿)的收获:
- 爆裂质点演示程序:熟悉了图片画直线的操作,一些数学矢量计算方法
- exe 读取程序:熟悉了C语言编写出来的exe二进制文件的样子,知道了怎么让python读取二进制文件了
- 每日邮件程序:
- 学会了用读写json格式文件的方式,实现了python程序运行后的数据转化和保存。
- 发现了如果程序够大,那么设计API就是一个非常重要的事情,每一个py文件不能出现循环引用,比如a文件引入b文件,b文件又引入了a文件。
- 知道如何让python判断电脑是否连接网络了。
- 知道如何让python自动发邮件了
- 真正的利用beautifulSoup实现了一次爬虫的字符串提取的部分,熟悉了它的使用
- 自己实现了一些随机句子,效果好像还可以
- 知道如何打印出彩色的字体了,在pyCharm里和在终端的黑色窗口里要用两种不同的方法打印。
- 毛概题库扩张程序:
- 又一次熟悉了一遍字符串的手动提取解析
- 又一次熟悉了一遍json格式文件的读写和与python的类对象进行转换
- 微信某自动签到程序:
- 锻炼了面向对象的设计能力
- 又一次熟悉了手动字符串解析
- 又一次熟悉了粘贴板操作、鼠标操作、键盘操作等一系列自动化操作
- 通过调用自动聊天机器人的网络爬虫代码,实现了微信自动聊天,但是效果很尴尬
- 词海程序:
- 又又又一次熟悉了字符串解析和提取的方法
- 实现了单词相似匹配的功能
- 又一次增加了对面向对象的感觉和认知,感觉从小到大逐步搭建起整个程序,逐步抽象和封装,设计类,提高可复用性本身就是一个非常有意思的过程。
- 位运算
- 熟悉了位运算的原理,并发现了一点分形结构的规律
一些算法题的收获
(不算python的收获了,是算法能力以及数据结构的收获了)
- N皇后问题:熟悉了深度优先遍历
- 有效括号:熟悉了基于python列表的栈的操作
- 死亡锁:熟悉了广度优先遍历
- 其他题:熟悉了链表的操作,图的操作,二维数组的操作,字符串的操作。
总结
我认为,python始终是一个方便快捷又功能丰富的小东西,拿来玩一些爬虫和自动化操作总是一个不错的选择,也可以锻炼一些编程思维。
以上便是这一学期的总结。