《Python 3.x入门到应用实践》

举报
华章计算机 发表于 2020/02/08 18:27:12 2020/02/08
【摘要】 本节书摘来自华章计算机《Python 3.x入门到应用实践》 一作者是赵 军 等。

Python 3.x入门到应用实践

1581157286859757.jpg

赵  军  等编著

 

 

 


前  言

用一句话形容近些年崛起的Python程序设计语言,那就是“无所不在、无所不能”。毫无疑问,Python已经成为最受欢迎的程序设计语言之一。在2018年9月的TIOBE排名中,Python语言已经超过了C++语言,跃升到探花的位置了,仅次于状元的Java语言和榜眼的C语言。

作为一款纯粹以自由软件方式推广的程序设计语言,Python 的语法简洁清晰,简单易用。虽然完整地支持面向对象程序设计的方方面面,但是Python并不强制程序设计人员采用面向对象的编程方式,而是可以自由地选择结构化面向过程的编程方式,也可以混合使用面向对象和面向过程的编程方式。虽然我们并不鼓励这么做,但是从这个方面足以说明Python语言的灵活性和柔韧性。再加上Python语言丰富和强大的链接库,涉及面之广令人赞叹,其中包括最新的领域——大数据分析、人工智能、机器学习、证券金融市场的量化交易等,这使它具有招牌式的第三个特性—黏合性。除了Python自由软件团体开发的各种程序和模块外,Python语言还可以把其他语言制作的各种模块轻松地“黏合”在一起,这就是它被称为“胶水语言”的黏性之源。正因为这些特性,所以不但信息产业的专业人员在使用Python语言,而且越来越多的计算机人群开始使用Python语言提高自己运用计算机的能力。行内人士见面的问候语以后也许会变成“你Python了吗?”。

本书的编写风格是教材式的,章节的组织结构与行文的叙述方式就是为了不断激发初学者在学习程序设计语言中的“好奇心”和“成就感”,避免“枯燥乏味”“望而却步”,到“勉为其难”,最终到“避之不及”的窘境。本书从一开始就避免陷于程序设计语言的语法纠结和编程注意事项的琐碎细节中,纵观全书,各个章节都是以范例程序为主线的,让学习者在动手实践中轻松掌握如何使用强大的Python 语言来解决日常的实际问题。作者在每个章节都精心选择了范例程序,每章的最后还安排和设计了上机实践演练范例程序,它们都和今天主流的网络应用息息相关。例如,图形用户界面程序的设计(范例为简易单词翻译器和简易计算器),以面向对象的方式设计的“选课和退课”程序,调用数学和绘图程序包来绘制直方图,编写网络爬虫程序从公开网站上提取股市行情的数据等,让读者直接体验掌握了一手实战必备技能之后油然而生的成就感。

本书既然是以教材的方式编写的,自然适用于大专院校作为教授程序设计课程的教科书。本书的内容有助于学生在学习程序设计语言的同时拓展程序设计实战能力。对于有意转向Python语言的专业人员来说,本书可以作为学习 Python 路途中的“北斗星”。

为了强化大家运用Python程序设计语言的动手编程能力,本书在每一章都规划了多个实用的范例程序及上机实践演练,这些精彩的范例程序包括:

  Hello World

  零用钱记账小管家

  成绩单统计小帮手

  密码验证程序不求人

  开放数据的提取与应用

  输出金字塔图形

  简易单词翻译器

  乐透投注游戏程序

  统计历年英语考试中的高频率单词

  用异常处理来控制用户输入的数值

 设计“选课和退课”程序

 用图形用户界面实现简易计算器

  直方图的绘制

  编写网络爬虫程序从公开网站上提取股市行情的数据

本书的范例程序可以登录机械工业出版社华章公司网站(www.hzbook.com)下载,先搜索到本书,然后在页面上的“资料下载”模块下载即可。

另外,对于各类开源项目、程序包和模块等,可以从网站https://pypi.org/获取。当然,它的核心网站为https://www.python.org/,其中的内容更加包罗万象。

本书主要由赵军编著,同时参与编写工作的还有王国春、施研然、王然、孙学南等。如果读者在学习过程中遇到无法解决的问题,或者对本书有意见或建议,可以通过邮箱booksaga@126.com与编者联系。

最后祝大家学习顺利,为Python自由软件社区添砖加瓦,同时让Python语言成为自己职业生涯的“开山之斧”。

 

资深架构师  赵军

2019年1月

 

 

 

目录


前言

第1章  Python简介与建立开发环境    1

1.1  Python简介    3

1.2  程序设计语言与程序设计  5

1.2.1  程序设计语言简介    6

1.2.2  算法与程序设计 7

1.2.3  流程图   9

1.2.4  程序设计流程简介    10

1.3  Python的应用       11

1.3.1  Web开发框架    11

1.3.2  数字科技集成开发    12

1.4  建立Python开发环境 15

1.4.1  下载Anaconda程序包    16

1.4.2  安装Anaconda   17

1.5  Python编写工具   20

1.5.1  “命令提示符”窗口     20

1.5.2  Spyder编辑器    22

1.5.3  IPython命令窗口      25

1.6  print输出指令       27

1.7  Python程序编写风格  28

1.7.1  编码声明      30

1.7.2  程序注释      32

1.7.3  指令的分行和合并    32

1.8  上机实践演练—Hello World     33

重点回顾    35

课后习题    37

第2章  数据类型、变量与常数      39

2.1  变量命名与赋值    40

2.1.1  变量声明与赋值 40

2.1.2  变量命名规则     41

2.1.3  静态类型与动态类型       43

2.2  Python的数值数据类型     44

2.2.1  整数       44

2.2.2  浮点数   45

2.2.3  布尔值   46

2.3  常数   47

2.4  格式化输入输出功能   47

2.4.1  格式化输出  47

2.4.2  输入函数:input()     50

2.5  数据类型转换 51

2.6  上机实践演练—零用钱记账小管家       52

2.6.1  范例程序说明     52

2.6.2  程序代码说明     53

重点回顾    53

课后习题    54

第3章  表达式与运算符    56

3.1  算术运算符     57

3.2  赋值运算符     59

3.3  比较运算符     62

3.4  逻辑运算符     63

3.5  位运算符  66

3.6  位位移运算符 68

3.7  运算符的优先级    70

3.8  上机实践演练—成绩单统计小帮手       71

3.8.1  范例程序说明     71

3.8.2  读取CSV文件    72

3.8.3  程序代码说明     74

重点回顾    77

课后习题    78

第4章  流程控制结构 80

4.1  认识流程控制 81

4.1.1  顺序结构      81

4.1.2  选择结构      81

4.1.3  循环结构      82

4.2  选择流程控制 82

4.2.1  if...else条件语句 82

4.2.2  多重选择      85

4.2.3  嵌套if    87

4.3  循环   88

4.3.1  while循环    89

4.3.2  for循环 90

4.3.3  嵌套循环      92

4.4  continue指令和break指令      94

4.4.1  break指令    94

4.4.2  continue指令     95

4.5  上机实践演练—密码验证程序不求人   96

4.5.1  范例程序说明     96

4.5.2  程序代码说明     96

重点回顾    97

课后习题    98

第5章  字符串的处理 100

5.1  创建字符串     101

5.2  认识转义字符 102

5.3  参数格式化输出    103

5.4  字符串下标与切片       106

5.4.1  通过下标值获取某个字符      106

5.4.2  通过切片读取某段字符串      106

5.4.3  调用split ()方法分割字符串  107

5.5  字符串的常用运算符   109

5.5.1  比较运算符  110

5.5.2  in与not in运算符    110

5.6  字符串的常用函数与方法  110

5.6.1  计算字符串的长度—len()函数     111

5.6.2  与字母大小写有关的方法      111

5.6.3  搜索特定字符串出现的次数—count()       112

5.6.4  删除字符串左右两边特定的字符—strip()、lstrip()、rstrip()      113

5.6.5  字符串替换—replace()    113

5.6.6  查找字符串—find()与index() 114

5.6.7  startswith()方法与endswith()方法      115

5.7  上机实践演练—开放数据的提取与应用      116

5.7.1  什么是开放数据 116

5.7.2  获取开放数据     117

5.7.3  范例程序说明     119

5.7.4  程序代码说明     120

重点回顾    123

课后习题    124

第6章  函数   126

6.1  认识函数  127

6.1.1  定义函数      127

6.1.2  调用函数      128

6.1.3  函数的返回值     130

6.2  Python的参数传递机制     132

6.3  变量的作用域 133

6.4  递归函数  134

6.4.1  递归的定义  134

6.4.2  斐波那契数列     136

6.4.3  汉诺塔问题  137

6.5  认识排序  141

6.5.1  选择排序法  141

6.5.2  冒泡排序法  144

6.5.3  排序函数—sorted()   147

6.6  lambda表达式      148

6.7  上机实践演练—输出金字塔图形    149

6.7.1  范例程序说明     149

6.7.2  程序代码说明     150

重点回顾    153

课后习题    154

第7章  高级数据类型 156

7.1  容器数据类型的比较   157

7.2  列表   157

7.2.1  创建列表      158

7.2.2  列表的常用内建函数       159

7.2.3  常用的列表运算符    161

7.2.4  列表的常用方法 162

7.2.5  用del删除变量与元素    164

7.2.6  二维和多维列表 164

7.3  元组   166

7.3.1  创建元组      167

7.3.2  元组的内建函数 167

7.3.3  元组的运算符     168

7.3.4  解包与交换  169

7.4  字典   170

7.4.1  创建字典      170

7.4.2  字典的基础操作 171

7.4.3  适用于字典的函数    172

7.4.4  适用于字典的运算符       172

7.4.5  适用于字典的处理方法   172

7.5  集合   176

7.5.1  创建集合      176

7.5.2  适用于集合的运算符       176

7.5.3  适用于集合的方法    177

7.6  字典综合范例—简易单词翻译器(图形用户界面)       178

7.6.1  范例程序说明     179

7.6.2  程序代码说明     179

重点回顾    182

课后习题    183

第8章  模块与程序包 185

8.1  导入模块  186

8.1.1  导入整个模块     187

8.1.2  替模块取别名     188

8.1.3  只导入特定的函数    189

8.2  自定义模块     191

认识Python的__name__属性    192

8.3  实用的内建模块与在线帮助     193

8.3.1  os模块  194

8.3.2  sys模块 195

8.3.3  random模块       197

8.3.4  datetime模块     198

8.3.5  查看模块的路径与文件名      201

8.3.6  程序包在线帮助文件       202

8.4  第三方程序包 204

8.4.1  使用pip管理程序安装程序包      205

8.4.2  从PyPI网站安装程序包  206

8.5  上机实践演练—乐透投注游戏程序       207

8.5.1  范例程序说明     207

8.5.2  程序代码说明     208

重点回顾    211

课后习题    212

第9章  文件的存取与处理       214

9.1  认识文件  215

9.1.1  文件的种类  215

9.1.2  认识文件与目录 215

9.1.3  绝对路径与相对路径       216

9.2  文件的读与写 216

9.2.1  文件的写入  217

9.2.2  文件的读取  219

9.3  二进制文件     224

9.4  综合范例程序—统计历年英语考试中的高频率单词       225

重点回顾    226

课后习题    228

第10章  错误与异常处理  229

10.1  程序的错误类型  230

10.1.1  语法错误    230

10.1.2  运行时错误       231

10.1.3  逻辑错误    232

10.2  认识异常       233

10.2.1  异常的类型       233

10.2.2  异常处理的时机      234

10.3  异常处理方式      235

10.3.1  异常处理的语法      235

10.3.2  用raise抛出指定的异常      238

10.4  综合范例程序—用异常处理来控制用户输入的数值     239

重点回顾    240

课后习题    241

第11章  面向对象程序设计     243

11.1  认识面向对象      244

11.1.1  类与对象    244

11.1.2  面向对象的特点      245

11.1.3  面向对象程序设计中的关键术语      246

11.2  Python的类与对象    247

11.2.1  定义类 247

11.2.2  类实例化    247

11.2.3  将对象初始化的__init__()方法    250

11.2.4  匿名对象    251

11.2.5  私有属性与方法      252

11.3  继承 253

11.3.1  单一继承与多重继承     254

11.3.2  覆盖     258

11.3.3  继承相关函数   259

11.3.4  多态     260

11.3.5  合成     261

11.4  上机实践演练—设计“选课和退课”程序     262

重点回顾    263

课后习题    264

第12章  开发图形用户界面的窗口程序      266

12.1  GUI tkinter程序包     267

12.1.1  导入tkinter程序包 267

12.1.2  创建主窗口       267

12.1.3  布局方式    268

12.2  图形用户界面控件     271

12.2.1  标签控件    271

12.2.2  按钮控件    273

12.2.3  文本编辑控件   275

12.2.4  多行文字控件   277

12.2.5  单选按钮控件   278

12.2.6  复选按钮控件   279

12.2.7  滚动条控件       281

12.3  对话框    283

12.3.1  消息框 283

12.3.2  简单型对话框   284

12.3.3  文件对话框       286

12.3.4  调色板选择框   288

12.4  菜单 290

12.5  绘制图形       295

12.5.1  加入位图图像   295

12.5.2  用Canvas控件绘制几何图形     296

12.6  上机实践演练—用图形用户界面实现简易计算器  297

12.6.1  创建主窗口       298

12.6.2  版面布局    298

12.6.3  创建标签、文本编辑与按钮控件      299

12.6.4  加入事件处理函数  301

12.6.5  捕获错误信息   302

重点回顾    304

课后习题    306

第13章  数组与科学计算  308

13.1  NumPy简介 309

13.2  一维数组的应用  309

13.2.1  一维数组的创建      310

13.2.2  ndarray类型的属性       311

13.2.3  一维数组的其他创建方式    311

13.2.4  数组的输出       313

13.2.5  数组的基本操作      314

13.2.6  通用函数    314

13.2.7  数组的下标值与切片运算    316

13.3  二维数组的创建与应用    317

13.3.1  二维数组的创建      318

13.3.2  矩阵相加    319

13.3.3  矩阵相乘    321

13.3.4  转置矩阵    322

13.4  上机实践演练—直方图的绘制      323

重点回顾    325

课后习题    326

第14章  数据提取与网络爬虫 328

14.1  数据提取前的准备工作    329

14.1.1  认识URI与URL      331

14.1.2  用urllib.parse模块解析URL      332

14.2  我的第一个网络爬虫程序       336

14.2.1  网页构成三要素      336

14.2.2  查看网页源代码      337

14.2.3  用urllib.request获取网页内容  341

14.2.4  实用的requests程序包 345

14.3  用Beautiful Soup 4进行网页解析       354

14.3.1  首选Tag     355

14.3.2  BeautifulSoup常用的属性和方法     359

14.3.3  BeautifulSoup程序包的应用范例     365

重点回顾    370

课后习题    371

第15章  课后习题参考答案     374

第1章  课后习题参考答案       374

第2章  课后习题参考答案       376

第3章  课后习题参考答案       377

第4章  课后习题参考答案       379

第5章  课后习题参考答案       380

第6章  课后习题参考答案       382

第7章  课后习题参考答案       384

第8章  课后习题参考答案       386

第9章  课后习题参考答案       387

第10章  课后习题参考答案     388

第11章  课后习题参考答案     389

第12章  课后习题参考答案     390

第13章  课后习题参考答案     391

第14章  课后习题参考答案     392


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。