Python 学习历程

慢慢地我也学完了 Python 的基础语法,至于说掌握吸收了多少我也不清楚,浑浑噩噩。

但确实是不太想也不太需要补基础了,就来这里写一下我的学习历程。

学习一 初识Python,啊,Python真好玩

首先我在本科大四的时候选修了一门课,《Python 数据处理》,当时想着,反正以后要用到Python的吧,而且都大四了,分数也不是很所谓。本着多学一门赚一门的想法(完全没想到会有超学分补学费的痛苦过程),也就选上了。

去了之后,发现同班同学全都会基础语法,我与本专业同学就瑟瑟发抖,每次上课都励志一定好好学基础,下课则下次一定。啊,多么咸鱼的时光,哈哈哈。然后老师在上面讲的是numpypandas这类数据处理利器的使用,期间夹杂了很多关于切片、聚合、分组处理数据的办法,(现在依稀回想觉得老师)讲的真好。

讲完numpypandas之后给我们介绍matplotlib,这是一个丑丑的画图包,当然偏向科学画图,立志取代matlab画图的有志向的包呢!最后老师还讲了讲爬虫,但我实在是对爬虫爱不起来,因为我实战的时候还不如前面的数据分析。。。

然而这一切的美好都在课堂上完全跟不上老师的逻辑,以及期中考试该死的手撕代码打破了!!!更恐怖的是,竟然期末考核是一个数据处理大作业!啊,平时爱得死去活来的大作业,当它碰上了基础不会、进阶不懂的人,还要求上台作Presentation,简直就是不给你60+还要公开处刑你的大恶人!!!

这里简单描述下我的大作业:

一共1011个PDF文档,从某某标准网上爬下来的数据,作为数据处理源

  1. 首先需要做的是,从中提取出来13项指定信息,并汇总到一个Excel中;
  2. 其次,需要对该13项指定信息进行分析,得到有效的结论;

啊,看起来真是简单呢,因为跟这个作业相对的是自己从网上爬取数据,数据源都要自己找呢。

学习二 面向百度编程恶补Python,Python真有意思

因为这个作业看起来就很恐怖,所以我想起来伟大领袖毛爷爷的话,从战略上藐视对方,从战术上重视对方。

然后,然后自我安慰,一定能做完的叭,于是拖到了上台报告前最后两周。。。

啊,咸鱼的生活可真美好。

倒数第二周疯狂开始百度搜索各种错误,各种程序代码,各种理解并魔改。。。

基本思路就是这样的:

比如解决一个批量复制文件并改名的操作,因为要从老师给的压缩包里解压出来的各种子文件夹里的PDF文件整理并复制出来(这里的文件与子文件夹命名并没有强关联),然后对复制出来的PDF文件们进行批量重命名,这有利于我在后续某个文件出问题时快速定位比对源文件。扯远了,回到这个问题的解决过程。。。

  1. 如何定位每个子文件夹呢,于是百度怎么获得文件夹下面的所有文件夹
  2. 怎么得到子文件夹里所有的文件呢,卧槽这个也不会,查查
  3. 我要怎么把它们复制出来啊,我擦复制什么函数来着,路径要不要是绝对路径来着,赶紧上百度
  4. 。。。
    。。。
    n. 终于解决了文件复制重命名,开森,然后看看代码,嗯,全都没记住,暴风哭泣。。。

在经历了这么几个过程之后,我艰难的把大作业完成了,(。・∀・)ノ゙嗨,真难

数据提取
复制文件 - 对文件改名 - 分割PDF为图片 - 对图片按PDF分类 - 将图片进行压缩 - 上传到百度OCR识别接口 - 将返回的txt放在对应PDF的子文件夹 - 拼接txt - 正则表达式匹配数据提取 - 缺项情况查看 - 改进正则表达式 - 缺项情况查看 - 改进正则表达式 - 缺... - ... - 保存数据到Excel文件 -完成数据提取!



数据分析
对数据进行统计 - 缺项数据解释 - 对各项数据简单分析 - 联合几项数据分析 - 得到初步结论 - 查找资料佐证 - 修改结论 - 查找资料佐证 - 修改结论 - ... - 得到最后展示文件



各位如果有兴趣,可以看看这里我的大作业,需要配置 PythonJupyter notebook 环境。

原始数据:

链接:https://pan.baidu.com/s/1bWuz43Ldu-KoxzVzvfaDBw
提取码:xqk9

作业成品:

链接:https://pan.baidu.com/s/1c26l1O-C2zVfUNgjnx5UDQ
提取码:bls2

这作业真的很磨人,近乎绝望,各种意外的情况,像是什么日文PDF啦、韩文PDF啦,像是什么图纸文件(根本不是标准文件)、施工方案、专利文件,以及什么空白PDF。。。

最折磨人的是,有些日期写的是“十月十五”,有的是10.15,有的是10-15,有的是98.05、1998.05、1998-05、1998-05-27、零八五月、零八年五月。。。就是这些“-”、“.”以及中文数字、日期长度之类的无穷组合。。。。

以及所谓的英文标题,拜托,现在谁还专门在title的地方告诉你,这玩意是title。。。

实名(我这实名了个锤锤)感谢我的老师,大家都90+(我是没+的)过的,开心极了。

学习三 下定决定好好学Python呢,这该死的可爱的语气

基于我的C语言就是从B站、网易云课堂找到的,我也在B站、网易云课堂找了找相关的免费课程。但一趟学下来,感觉收获不少,又感觉没学到什么。因为在项目实战中该学的都用到了,因此学习的时候又回忆起来了,这就索然无味。

Python教程_600集Python从入门到精通教程(懂中文就能学会)

接着基于网易云找到了一堂课,学的是真的补的漏啊,像是字符串的新鲜操作,超级满足我的缺漏,于是我觉得这大概就是很好的课程了。连带着我觉得老师的声音都贼好听~

Python 语言基础

学习四 学Python怎么能干学呢,来点题目

说到学代码,最好的当然是实战刷题啦,记得又牢,又有意思,问题也比较多就是,比如一做可能就是一晚上。。。

而且不是自己接出来,看别人的思路总是不痛快。。。

这里推荐我用过的 LeetCode 吧,网址在这里。

比如其中一道题是这样的:


稍微思考一下,就可以利用循环去做,还是比较简单的。当然现在让我重新写,估计我可以写更加高级的操作。但,也许效率并不会提升就是,哈哈哈哈。


class Solution:
    def countAndSay(self, n: int) -> str:
        last = ''
        for i in range(n):
            string = ''
            if i == 0:
                string = '1'
            else:
                count = 0
                temp_string = ''
                for j in last:
                    if temp_string == '':
                        temp_string = j
                        count += 1
                    elif j == temp_string:
                        count += 1
                    else:
                        string += str(count)
                        string += temp_string
                        count = 1
                        temp_string = j
            if i != 0:
                string += str(count)
                string += temp_string
            last = string
        return last

然后通过啦,经过思考,优化了一小节,成绩提升了,然后成就感就来了,同时也熟悉了Python的操作,多好啊。

目前只做了这么些简单的题目,主要还是假期没怎么做,隔十天做一次这样。
(啊别骂了别骂了,我菜我不对,呜呜呜呜)

学习五 我怎么又走了弯路,暴风哭泣。。。

其实上面找到的教程还不是很好,因此我又在网易云课堂找啊找啊,终于找到个比较好的课啦。

果然,课没选对很多东西根本不会讲,尤其是涉及到内存的操作与理解,没有这些怎么进阶高级操作(插会腰装个B),哈哈哈哈。

python人工智能基础第一季

image-20201009194742614

这个视频讲解对象是什么, Python 中对象在内存中是怎么样处理的,垃圾回收机制,以及类的继承操作等,讲的老详细了,超级推荐找一个靠谱的 Python 学习教程再开始!!!

当然,最好还是要跟着敲代码记笔记的,要是学习没有热情我建议跟我一样每天更新学习日记,来勉励自己哦。(虽然我这个学习笔记也不是每天更新,但是我更新了呀)

总结

其实总的来说,学习Python还是比较简单入门的,就是 找一个靠谱的课程 + 小项目实战 + 题库练习 + 学习笔记,这些做好之后,学 Python 一点都不困呐

每天都活力满满呢~

赞赏