Python程序设计:基础与实践

978-7-115-62504-5
作者: 殷锡亮刘阳张胜扬
译者:
编辑: 李瑾
分类: Python

图书目录:

详情

Python 是一种面向对象的解释型高级编程语言,是当前最流行的编程语言之一。本书系统性地介绍Python 的基础知识及利用 Python 进行项目开发的实践。全书分两部分,第一部分介绍 Python 的基础语法、Python 自带的两个模块及其使用方法,以及 Python 的矩阵计算包 NumPy 的使用方法等,在介绍基础语法的同时强调利用 Python 进行编程时需要注意的编程规范;第二部分聚焦科学研究和工程实践中比较前沿的方向,涵盖绘图、图像处理、优化计算、游戏开发、基于 Web 的系统开发、爬虫、机器学习等方面的项目实践,侧重点是利用 Python 实现项目需求。

图书摘要

版权信息

书名:Python程序设计:基础与实践

ISBN:978-7-115-62504-5

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


版  权

著    殷锡亮 刘 阳 张胜扬

责任编辑 李 瑾

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

Python是一种面向对象的解释型高级编程语言,是当前最流行的编程语言之一。本书系统性地介绍Python的基础知识及利用Python进行项目开发的实践。全书分两部分,第一部分介绍Python的基础语法、Python自带的两个模块及其使用方法,以及Python的矩阵计算包NumPy的使用方法等,在介绍基础语法的同时强调利用Python进行编程时需要注意的编程规范;第二部分聚焦科学研究和工程实践中比较前沿的方向,涵盖绘图、图像处理、优化计算、游戏开发、基于Web的系统开发、爬虫、机器学习等方面的项目实践,侧重点是利用Python实现项目需求。

本书适合想学习Python语言,期待使用Python进行实际项目开发的读者阅读。

前  言

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

就目前来说,我的答案是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日于哈尔滨

资源与支持

资源获取

本书提供如下资源:

程序源码;

操作视频;

教学PPT;

书中彩图文件;

本书思维导图;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误信息

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,单击“发表勘误”,输入勘误信息,单击“提交勘误”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误信息进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

异步社区”是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作译者与读者在线交流互动,以及传统出版与数字出版的融合发展。

异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT的用户。

作 者 简 历

殷锡亮,副教授,工学博士,中国人工智能学会会员。参与黑龙江省自然科学基金项目一项,发表3篇SCI、2篇EI检索论文,获得国家发明专利三项。拥有6年通信行业上市企业研发经验和8年高校信息通信技术类专业教学经验。研究领域包括机器视觉、室内定位、人工智能等。

刘阳,数据库系统工程师,副教授,工程硕士。2006至今,就职于哈尔滨职业技术学院,主要讲授数据库管理及维护、Web综合实战、Python、动态语言编程等课程,擅长网站开发和建设,曾担任第46届世界技能大赛黑龙江省选拔赛“网站设计与开发”项目命题专家及裁判(2020年),第45届世界技能大赛黑龙江省选拔赛“网站设计与开发”裁判(2018年),第七届黑龙江省残疾人技能大赛网页制作赛项裁判(2018年)。

张胜扬,高级讲师,就职于北京中软国际教育科技股份有限公司,曾讲授西北工业大学“Python网络爬虫认知实训”课程,东北农业大学“人工智能实训”课程,北京联通软件研究院“Python基础及数据采集”课程企业培训,中国移动“机器学习算法”授课企业培训,中海航“基于Django的微服务架构”课程。研究方向包括大数据采集及数据分析、高等数学数据分析、机器学习数据分析、网站架构、图像识别等。

第一部分 Python基础

本书的第一部分由第1章~第13章组成,其中第1章~第10章介绍Python的基础语法;第11章和第12章对Python自带的两个模块的使用方法进行详细描述,旨在使读者能够进一步熟悉并且掌握Python的基础语法;第13章介绍NumPy的使用方法,旨在为学习本书的第二部分做好铺垫。本书提供一些常见问题及其解决方法的示例,使读者在解决问题的过程中潜移默化地强化对Python语法的认知。

千里之行,始于足下。请读者准备好开始有趣的Python学习之旅吧!

第1章 Python集成开发环境介绍

对于大多数人来说,学习编程语言应该动手实践,在实践中学习、理解并消化Python知识,将之转化为自身的能力。Python的开发平台可以是它的集成开发和学习环境,也可以是它的集成开发环境。1.1节介绍Python IDLE(Integrated Development and Learning Environment)Shell,虽然Python对IDLE的定义是集成开发和学习环境,但作者认为它更应该定义为Python的交互式解释器;1.2节介绍Python的IDE(Integrated Development Environment,集成开发环境)PyCharm。

1.1 Python IDLE Shell

对于一台没有安装过Python集成开发环境的计算机,你可以访问Python官方网站,在上面找到适合自己计算机操作系统的Python安装包,或者使用本书提供的配套资源(作者从Python官方网站上下载的适用于64位Windows操作系统的安装包,其版本是Python 3.9.7,特别提示:Python 3.9.7不支持Windows 7以及之前的版本,因此如果你的计算机装有Windows操作系统,请先将其升级至Windows 7之后的版本),根据教程进行安装,安装过程非常简单。图1-1展示了在撰写本书时作者使用装有Windows操作系统的计算机访问的Python官方网站主页,当时的最新版本为Python 3.9.7。

图1-1 Python官方网站主页

安装Python后,计算机就有了Python的IDLE。图1-2给出了Python IDLE Shell(后文简称IDLE)3.9.7的界面。

图1-2 Python IDLE Shell 3.9.7的界面

1.2 PyCharm集成开发环境

虽然初学者会觉得Python IDLE的界面很简明,但作者仅推荐初学者使用它进行Python编程的基本实践,不推荐使用IDLE进行Python项目开发,因为这很难,而且很不方便。为解决这个问题,很多开发团队设计了诸多IDE,其中最著名的就是PyCharm。

PyCharm是由JetBrains打造的一款Python IDE,Visual Studio 2010的重构插件ReSharper就出自JetBrains之手。PyCharm带有一整套可以帮助用户在使用Python语言进行开发时提高效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。此外,PyCharm提供一些高级功能,用于支持Django框架下的专业Web开发。同时它还支持Google App Engine和IronPython。凭借这些功能以及先进代码分析程序的支持,PyCharm成为Python专业开发人员和初学者的有力工具。你可以访问其官方网站获取PyCharm的安装包或者使用本书配套资源中的PyCharm安装包。如图1-3所示,本书使用的安装包是社区版(Community),其版本号为2021.2.2。

图1-3 PyCharm下载页面

安装成功之后,开始使用的时候读者会发现实际上PyCharm还是会在Python官方网站中下载Python的源码。因此,你可以在安装PyCharm之前就直接把Python 3.9.7安装好,这会加快PyCharm的安装过程。两者安装成功之后可以打开PyCharm,运行它自带的测试程序welcome. py,运行后会获得这个程序的结果,如图1-4所示。

图1-4 PyCharm开发界面

请注意,本书中使用的示例是从PyCharm官方网站中下载的welcome.py源文件。细心的读者不难发现,虽然程序并没有运行出错,但是程序中存在明显的命名不规范问题。函数名是find_average,顾名思义,这个函数的作用应该是求平均值,然而最后函数的输出却是输入数据[5,6,7,8]的和(PyCharm将此作为错误示例)。本书中也可能存在一些类似问题,希望读者发现后能反馈给作者,以便作者修改完善。

在本书的第一部分,作者主要以Python IDLE为开发平台进行Python编程语言的知识讲解和示例演示;在本书的第二部分的个别章节中,会以PyCharm为开发平台进行项目化教学实践。

相关图书

深度学习的数学——使用Python语言
深度学习的数学——使用Python语言
动手学自然语言处理
动手学自然语言处理
Python高性能编程(第2版)
Python高性能编程(第2版)
图像处理与计算机视觉实践——基于OpenCV和Python
图像处理与计算机视觉实践——基于OpenCV和Python
Python数据科学实战
Python数据科学实战
Web应用安全
Web应用安全

相关文章

相关课程