Python程序设计:基础与实践
上QQ阅读APP看书,第一时间看更新

前言

很多人都有这样的疑问:哪个编程语言是最流行的?

就目前来说,我的答案是Python。请看它的成绩单:2021年Python荣获TIOBE“年度编程语言”称号,同时,Python也是自TIOBE榜单发布以来,首个5次获得该称号的编程语言,Python在该榜单2023年5月排名中仍然位居第一;在IEEE Spectrum发布的2021和2022年度编程语言排行榜中,Python在总榜单以及其他几个分榜单中依然牢牢占据第一名的位置。当本书出版时,Python依然会是主流编程语言排行榜的前几名之一。

接下来你会问Python是什么。

准确地说,Python是一种面向对象的解释型高级编程语言,具有动态语义。你可能不喜欢在前言部分就遇到如此专业的术语解释。那么在此部分,请看对它的非正式解释。Python的名字源于Monty Python(巨蟒剧团),而不是Python单词的含义(蟒蛇)。巨蟒剧团是英国的一个超现实幽默表演团体,被称为“喜剧界的披头士”,在20世纪70年代风靡全球。虽然作者并不熟悉这个表演团体,但认为应该向你介绍Python名字的来源。说完了Python名字的来源,你可能会想了解它的创造者。到底是谁创造了它?像Dennis MacAlistair Ritchie创造了C语言一样,荷兰国家数学与计算机科学研究中心的Guido van Rossum创造了Python。它的设计初衷就是希望使用者能轻松地实现编程,并且能写出清晰、易懂的程序。

那么,我们为什么使用Python呢?

Python是多个Linux发行版的重要组成部分,NASA使用它来完成程序开发,Yahoo使用它来管理讨论组,Google使用它来实现网络爬虫和搜索引擎的众多组件,卡内基梅隆大学的编程基础课程、麻省理工学院的计算机科学及编程导论课程使用它来讲授。著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK等都为Python提供了对应的调用接口。Python专用的科学计算扩展包就更多了,例如NumPy、SciPy和Matplotlib,它们分别为Python提供了数值计算、快速数组处理和绘图功能。经典的机器学习包Scikit-learn中几乎包含全部的机器学习算法的实现。PyTorch、TensorFlow和Keras三大深度学习包中的PyTorch和Keras的代码完全使用Python编写,除此之外,TensorFlow中也有部分代码使用Python编写。在不久的将来,假如你遇到一个软件开发项目,当你为选择什么开发语言而犯愁时,就会有人说为什么不使用Python呢?

如果前面的答案足够吸引你的话,那么你将会提出最后一个问题——怎么更好地学习并使用Python?本书力争带你走进Python的编程世界,从Python基础开始直到Python项目实践,其中Python项目实践部分包括绘图、机器视觉、优化计算以及机器学习等科学研究方面和Web开发、爬虫以及游戏开发等应用方面的内容。当你学习本书提供的示例并进行练习后,你就已经入门了,要知道“学习之道在于积累”。

本书第1章~第16章、第20章~第22章以及附录部分由殷锡亮编写,第17章由刘阳编写,第18章由张胜扬编写,第19章由张胜扬和刘阳合作编写。

感谢哈尔滨工业大学的谭学治教授,没有他在本书编写期间对作者的鼓励和支持,本书不可能这么快面世。感谢哈尔滨工业大学的贾敏教授和马琳教授,他们在本书编写过程中给予作者很多有益的指导。感谢人民邮电出版社信息技术分社社长陈冀康对本书架构提出的宝贵意见,感谢本书的责任编辑李瑾,加工编辑陈继亮、王璐瑶,没有你们细致的审读与编辑加工工作,不可能在出版之前校正出大量的错误。限于作者能力,书中疏漏之处在所难免,恳请读者批评指正。

作者

2023年6月1日于哈尔滨