目录

Python 为什么要学习

Python是一种易于学习,功能强大的编程语言。它具有高效的高级数据结构和面向对象编程的简单而有效的方法。

Python优雅的语法和动态类型及其解释特性使其成为大多数平台上许多领域的脚本编写和快速应用程序开发的理想语言。

Python 写自动化脚本

如果你经常在电脑上工作,总会有些任务会想让它自动化。

比如,对一大堆文本文件进行查找替换,对很多照片文件按照比较复杂的规则重命名并放入不同的文件夹。也可能你想写一个小型的数据库应用,一个特定的界面应用,或者一个简单的游戏。

如果你是专业的软件开发人员,你可能需要编写一些C/C++/Java库,但总觉得通常的开发的流程(编写、编译、测试、再次编译等)太慢了。可能给这样的库写一组测试,就是很麻烦的工作了。或许你写了个软件,可以支持插件扩展语言,但你不想为了自己这一个应用,专门设计和实现一种新语言了。

那么,Python正好能满足你的需要。

对于这些任务,你也可以写Unix脚本或者Windows批处理完成,但是shell脚本最擅长移动文件和替换文本,并不适合GUI界面或者游戏开发。你可以写一个C/C++/Java程序,但是可能第一版本的草稿都要很长的开发时间。

Python的使用则更加简单,可以在Windows,Mac OS X,以及Unix操作系统上使用,而且可以帮你更快地完成工作。

Python很容易使用,但它是一种真正的编程语言,提供了很多数据结构,也支持大型程序,远超shell脚本或批处理文件的功能。Python还提供比C语言更多的错误检查,而且作为一种“超高级语言”,它有高级的内置数据类型,比如灵活的数组和字典。正因为这些更加通用的数据类型,Python能够应付更多的问题,超过Awk甚至Perl,而且很多东西在Python中至少和那些语言同样简单。

Python 允许你划分程序模块,在其他的 Python 程序中重用。它内置了很多的标准模块,你可以在此基础上开发程序——也可以作为例子,开始学习 Python 编程。例如,文件输入输出,系统调用,套接字,甚至图形界面接口工作包比如 Tk 。

Python是一种解释型语言,在程序开发阶段可以为你节省大量时间,因为不需要编译和链接。解释器可以交互式使用,这样就可以方便地尝试语言特性,写一些一次性的程序,或者在自底向上的程序开发中测试功能。它也是一个顺手的桌面计算器。

Python程序的书写是紧凑而易读的。

Python代码通常比同样功能的C,C++,Java代码要短很多,原因列举如下:

高级数据类型允许在一个表达式中表示复杂的操作;

代码块的划分是按照缩进而不是成对的花括号;

不需要预先定义变量或参数。

Python是“可扩展的”:如果你知道怎么写C语言程序,就能很容易地给解释器添加新的内置函数或模块,不论是让关键的程序以最高速度运行,还是把Python程序链接到只提供预编译程序的库(比如硬件相关的图形库)。一旦你真正链接上了,就能在Python解释器中扩展或者控制C语言编写的应用了。

顺便提一下,这种语言的名字(Python意为“蟒蛇”)来自于BBC节目“Monty Python的飞行马戏团”,而与爬行动物没有关系。在文档中用Monty Python来开玩笑不只是可以的,还是推荐的!

现在你已经对Python跃跃欲试了,想要深入了解一些细节了。

因为学习语言的最佳方式是使用它,本教程邀请你一边阅读,一边在Python解释器中玩耍。

在下一章节,会讲解使用解释器的方法。看起来相当枯燥,但是对于尝试后续的例子来说,是非常关键的。

教程的其他部分将通过示例介绍Python语言和系统中的不同功能,开始是比较简单的表达式、语句和数据类型,然后是函数和模块,最终接触一些高级概念,比如异常、用户定义的类。

实战演练

openccPy

针对 python 的分词。

学习知识点:

  1. python 接口 Done

  2. 异常处理 Done

  3. pip 如何管理 python 包 Done

  4. 单元测试在 python 中怎么写 Done

  5. 文件读写 Done

  6. 编码规范 Done

  7. 编辑器 Done

  8. 日志 Done

  9. github 对于 python 怎么做 CI 上传到 pip3+ci+coverals

  10. 如何发布自己的包到中央仓库

python 爬虫

作为一个写工具十分方便的语法,多写点爬虫总没有错。

  1. 学习一下 python 多线程

  2. python 网络通讯/爬虫包

  3. 数据库访问。比如 mysql 或者使用 mongo

  4. 可视化处理。分词+情感分析+cloud

AI

可以写诗词的 ai 工具

  1. 首先直接使用别人训练好的使用即可。

  2. 结合吴教授的 ai 教学视频在学习一遍。

命令行工具

制作一个属于自己的命令行简历。

  • 功能
  1. 基本信息

  2. 擅长技术

  3. 项目经验

  • 目的
  1. 命令行相关

  2. 脚本命令相关

其他项目学习

qqlib 的 java 版本

看到一个 python 项目,可以将其转换为 java 项目。或者反过来。

参考资料

官方学习

Python教程 - 廖雪峰的官方网站

菜鸟教程