Python 诞生于 1989 年的圣诞期间,由 Guido van Rossum 开发而成,目前 Guido 仍然是 Python 的主要开发者,主导着 Python 的发展方向,Python 社区经常称呼他为『仁慈的**者』。
Python 是一门面向对象,解释型的高级程序设计语言,它的语法非常简洁、优雅,而这也是 Python 的一些设计哲学。Python 自带了很完善的库,涵盖了数据库,网络,文件处理,GUI 等方方面面,通过这些库,我们可以比较快速地解决一些棘手问题,也可以将其作为基础库,开发出一些高级库。
目前 Python 在大部分领域都占有一席之地,比如 Web 开发,机器学习,科学计算等。不少大型网站都是使用 Python 作为后台开发语言的,比如 YouTube、Pinterest、国内的豆瓣和知乎等。另外,有不少知名的机器学习库也是使用 Python 开发的,比如,scikit-learn 是一个强大的机器学习库,Theano 是一个成熟的深度学习库。
当然了,Python 也有一些缺点。Python 经常被人们吐槽的一点就是:运行速度慢,和 C/C++ 相比非常慢。但是,除了像视频高清解码等计算密集型任务对运行速度有较高的要求外,在大部分时候,我们可能并不需要非常快的运行速度。比如,一个程序使用 C 来实现,运行时间只需 0.01 秒,而使用 Python 来实现,需要 0.1 秒,虽然 Python 的运行时间是 C 的 10 倍,显然很慢,但对我们而言,这压根不是问题。
本书是我学习和使用 Python 的总结。在学习和使用 Python 的过程中,我作了不少笔记,并对一些笔记进行了加工和完善,发表在博客上。随着笔记的增加,我就萌生了写一本书的想法,希望能比较系统地总结相关知识,巩固自己的知识体系,而不是停留在『感觉好像懂了』的状态中。
有了想法之后,接下来就要开始写了。当然,从产生想法到付诸实践还是纠结了一段时间,毕竟,作笔记和写书很不一样啊。**斗争过后,我下定决心要把它写出来。
首先,我参考一些相关的书籍,作了一个基础的思维导图,如下:
接下来,就要开始写作了,这也是最艰难的一关。
我没有按照从头到尾的顺序写,而是从最感兴趣的知识点入手,比如函数式编程、类的使用等等。就这样,一点一点地写,实在不想写了,就先搁置一下,过两天继续写。
我在写作的过程中,给自己提了一个要求:尽量深入浅出,条理清晰。至于是否达到了,希望读者们多多批评指正,并给我提意见和建议。
本书的每章基本上都是独立的,读者可以挑选感兴趣的章节进行阅读。目前本书有 15 个章节:
- 第 1 章:介绍一些基础知识,包括 Python 中的输入和输出,字符编码。
- 第 2 章:介绍常用数据类型,比如字符串、列表和字典等。
- 第 3 章:介绍函数的定义和函数参数魔法。
- 第 4 章:介绍 Python 中的函数式编程,包括匿名函数、闭包和装饰器等。
- 第 5 章:介绍 Python 中类的使用,包括类方法、静态方法、super 和元类的使用等。
- 第 6 章:介绍 Python 中的高级特性,比如生成器,上下文管理器。
- 第 7 章:介绍文件和目录操作,os 的使用。
- 第 8 章:介绍使用 Python 处理进程、线程和协程。
- 第 9 章:异常处理。
- 第 10 章:单元测试。
- 第 11 章:正则表达式,re 模块的使用。
- 第 12 章:HTTP 服务,requests 模块的使用。
- 第 13 章:一些标准模块的使用,比如 argparse、collections 和 datetime 等。
- 第 14 章:一些第三方模块的使用。
- 第 15 章:结束语。
本书的编码环境:
- Python 版本以 2.7 为主,同时也会指出在 Python3 中的相应变化
- 操作系统使用 macOS,代码结果,尤其是内存地址等由于运行环境的不同会存在差异
本书将会持续进行修订和更新,读者如果遇到问题,请及时向我反馈,我会在第一时间加以解决。
目前本书暂时提供 epub 格式的电子版,因为生成的 pdf 和 mobi 版本并不是很美观,不利于阅读,故暂不提供。
本书由 Ethan 编写,采用 CC BY-NC-ND 4.0 协议发布。
这意味着你可以在非商业性使用的前提下自由转载,但必须:
- 保持署名
- 不对本书进行修改
时间 | 说明 |
---|---|
2017-01-03 | 发布版本 v1.0 |
如果你对于本书有什么建议或意见,欢迎批评指正,并联系我。
如果你觉得本书对你有所帮助,不妨请我喝杯咖啡,感谢支持!