本书系统全面地介绍了Python语言基础与常用算法思想。全书共分为12章,内容包括Python概述,Python基础语法,程序的基本结构,组合数据类型,函数,面向对象,文件操作,tkinter GUI编程,数据处理,数据可视化,爬取与分析网页数据,SQLite数据库操作。本书免费提供配套的教学资源,包括电子课件、习题答案、实验素材等,便于大家开展教学和上机实验。 本书内容丰富,结构清晰,案例准确易懂,在讲述基本理论知识的同时,注重操作技能和解决实际问题能力的培养。本书案例丰富,突出了实用性和专业性,从程序设计基本概念出发,通过大量示例由浅入深、循序渐进地讲述Python程序设计的基本概念和基本方法。 本书适合作为应用型本科和高职高专层次计算机相关信息技术类专业的基础教材,也可作为各类培训班的培训教材。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
本书配套有电子课件、习题答案、实验素材等教学资源,更便于教学和上机实验。
计算机程序设计是高校计算机各专业教学的核心课程,它是以高级程序设计语言作为工具,介绍程序设计的思想和方法,为后续相关计算机课程的学习奠定基础。因而计算机程序设计课程也是计算思维能力培养的重要载体,有助于学生理解计算机求解问题的基本思想和方法,是训练学生使用计算机编程解决实际问题的重要手段。计算机程序设计课程已经成为对学生进行计算思维能力培养较直接、较具操作性的课程。
Python语言是一种解释运行、面向对象、扩展性较强的程序设计语言,是学生学习计算机编程及理解计算机解决问题的有效工具。本书通过大量精选实例讲解程序设计的思想和方法,并穿插介绍相关的语言知识,从而培养学生的程序设计能力。本书有以下主要特点。
(1) 适合教学。本书参照教育部2015年11月相关规定中对大学计算机基础课程教学的基本要求,并结合当前Python的发展和应用现状编写而成。本书以程序设计初学者为教学对象,从程序设计基本概念出发,通过大量实例由浅入深、循序渐进地讲述Python程序设计的基本概念和方法。
(2) 校企结合共同编写。本书由教学一线的高校教师与企业专家(北京新大陆时代教育科技有限公司张正球)共同策划、编写。本书编者注重理论与实践相结合,不仅有基础的理论知识,而且通过大量的实例详细地讲述Python程序设计的相关内容。本书内容简单易懂、层次脉络清晰、技术难度适中,难易点安排恰当,非常适合教学。
(3) 章节内容结构合理。本书按照学生学习知识的规律,并按照Python语言和计算思维的相关概念组织各章节内容。每章均按照语法描述、示例讲解和编程实现的逻辑来介绍程序设计的方法,有利于学生提高学习效率。本书具体内容如下: 第1章是Python概述,第2章讲解Python基础语法,第3章讲解程序设计,第4章讲解Python独有的组合数据类型,第5章讲解函数,第6章讲解面向对象编程,第7章讲解文件操作,第8章讲解thinter GUI编程,第9章讲解数据处理,第10章讲解数据可视化,第11章讲解爬取与分析网页数据,第12章讲解SQLite数据库操作。在每章的介绍中,先总结出相关的操作方法,以帮助学生理解。
(4) 知识技术全面准确。本书主要针对高等院校相关专业初学程序设计的学生,书中详细介绍了Python语言的各种规则和规范,可以帮助学生全面掌握这门语言,从而设计出规范的程序代码。
(5) 配套教学资源丰富。本书配套有电子课件、习题答案、实验素材等教学资源,便于教学和上机实验。本书采用Python 3.8 IDLE 64位版本作为上机环境。
本书由张治斌主编,具体分工如下: 张治斌编写第1~4章,任宪臻编写第5~7章,张正求编写第8章和第9章,郑淑晖编写第10章和第11章,刘克纯编写第12章。全书由张治斌统编定稿。本书在编写过程中参考了大量相关资料,在此对相关作者表示衷心的感谢。
由于作者水平有限,书中难免有不足之处,恳请读者批评指正。
编者2021年3月
张治斌,自2004年参加工作以来,长期从事高职软件技术、大数据技术与应用专业教学工作,2014年6月,获得北京市职业院校优秀青年骨干教师称号,承担多门专业课授课工作,指导学生参加各类职业技能大赛多次获奖:蓝桥杯全国软件设计大赛获得二等奖,指导全国高职院校技术技能软件测试赛项北京赛区一等奖;主编及参编多部教材(见写作经历表),在核心及期刊公开发表论文20余篇,主持、参与多项省部级以上课题及项目,近五年主要主持及参与项目如下:
1.国家职教计算机应用技术专业教学资源库-数据挖掘课程子项目(负责人)
2. 《Web前端开发》1 X证书试点培训、取证(主要负责人)
3.《大数据技术与应用专业专业教学标准》开发(主要参与)
4.《计算机应用技术专业专业教学标准》开发(主要参与)
5.《大数据技术与应用本科层次职业教育试点专业简介》(主持编写)
6.《软件工程本科层次职业教育试点专业简介》(主持编写)
7.大数据技术与应用专业职业教育教师教学创新团队(主要参与)
8.工信部《计算机程序设计员职业技能标准》开发(主要参与)
9. 北京市教育信息化融合创新双百示范项目创新课题(负责人)
第1章Python概述/1
1.1Python语言简介1
1.1.1Python的诞生1
1.1.2Python的优缺点2
1.1.3Python的应用领域3
1.1.4Python发展历史4
1.2安装与配置Python程序开发环境4
1.2.1IDLE的下载与安装4
1.2.2Python的菜单选择和启动6
1.2.3在IDLE中编辑、运行程序9
1.2.4配置基本IDLE15
1.3习题18
第2章Python基础语法/20
2.1基本数据类型20
2.1.1数值类型20
2.1.2字符串类型23
2.2标识符和保留字符25
2.2.1标识符25
2.2.2关键字25
2.3变量和常量27
2.3.1变量27
2.3.2常量28
2.4运算符和表达式29
2.4.1算术运算符和算术表达式29
2.4.2关系运算符和关系表达式31
2.4.3逻辑运算符和逻辑表达式32
2.4.4赋值运算符和赋值表达式33
2.4.5运算符的优先级34
2.5语句35
2.6Python PEP8编码规范37
2.7习题39
第3章程序的基本结构/41
3.1顺序结构41
3.1.1输出函数print()41
3.1.2输入函数input()44
3.1.3注释语句45
3.1.4顺序结构程序实例45
3.2选择结构46
3.2.1if语句46
3.2.2ifelse条件语句47
3.2.3ifelifelse语句48
3.3循环结构49
3.3.1while循环语句49
3.3.2for循环语句51
3.3.3循环的嵌套53
3.3.4break语句、continue语句和pass语句54
3.3.5循环中的else语句56
3.4习题57
第4章组合数据类型/59
4.1列表59
4.1.1创建列表对象和列表变量59
4.1.2列表的基本操作61
4.1.3列表的内置函数65
4.1.4嵌套列表66
4.2元组67
4.2.1创建元组对象和元组变量67
4.2.2元组的基本操作69
4.2.3元组与列表的转换70
4.3字典70
4.3.1创建字典对象和字典变量71
4.3.2字典的基本操作72
4.3.3字典的常用方法74
4.4集合78
4.4.1创建集合对象和集合变量78
4.4.2集合的基本操作81
4.4.3集合的常用方法81
4.4.4集合的运算82
4.5习题86
第5章函数/88
5.1函数的定义与调用88
5.1.1函数的定义88
5.1.2函数的调用89
5.2参数的传递和函数的返回值91
5.2.1参数的传递91
5.2.2函数的返回值95
5.3嵌套函数、递归函数和lambda函数96
5.3.1嵌套函数96
5.3.2递归函数98
5.3.3lambda函数100
5.4变量作用域102
5.4.1局部变量102
5.4.2全局变量103
5.5内置函数106
5.5.1数学运算函数106
5.5.2字符串运算函数和方法107
5.5.3转换函数109
5.5.4序列操作函数109
5.6习题110
第6章面向对象/112
6.1类和对象112
6.1.1定义类112
6.1.2类成员112
6.1.3创建对象115
6.1.4构造方法117
6.1.5在类的内部调用实例方法121
6.1.6类变量和实例变量121
6.1.7实例方法、类方法和静态方法123
6.2类的封装126
6.2.1用私有变量、私有方法实现封装126
6.2.2用@property装饰器定义属性实现封装127
6.3类的继承132
6.3.1继承的实现132
6.3.2重写方法133
6.3.3派生属性或方法136
6.3.4多重继承137
6.3.5isinstance()和issubclass()函数137
6.4类的多态138
6.4.1多态的实现138
6.4.2多态性139
6.5习题140
第7章文件操作/143
7.1文件的打开和关闭143
7.1.1打开文件的函数143
7.1.2关闭、写缓冲文件的方法147
7.2文件的读/写操作148
7.2.1读取文件中的数据148
7.2.2向文件中写入数据151
7.2.3在文件中定位153
7.2.4二进制文件的读/写157
7.3CSV文件158
7.3.1CSV文件简介158
7.3.2向CSV文件中写入和读取一维数据159
7.3.3向CSV文件中写入和读取二维数据160
7.4习题163
第8章tkinter GUI编程/165
8.1tkinter编程概述165
8.1.1导入tkinter库165
8.1.2用tkinter库创建GUI应用程序的步骤165
8.2tkinter的主窗体166
8.3tkinter GUI的布局管理169
8.3.1用pack()方法布局169
8.3.2用grid()方法布局172
8.3.3用place()方法布局174
8.4tkinter的常用控件176
8.4.1tkinter库中提供的常用控件及添加方法176
8.4.2控件的属性178
8.4.3Label控件180
8.4.4Button控件181
8.4.5Entry控件184
8.4.6Frame控件187
8.4.7Radiobutton控件188
8.4.8Checkbutton控件190
8.4.9Text控件193
8.4.10Listbox控件195
8.5tkinter对话框197
8.5.1消息对话框197
8.5.2简单输入对话框201
8.5.3文件对话框202
8.5.4颜色选择对话框205
8.6用Canvas控件绘制图形206
8.7tkinter的事件处理210
8.7.1事件对象的属性210
8.7.2事件处理程序211
8.7.3事件绑定211
8.8习题214
第9章数据处理/219
9.1NumPy计算库的使用219
9.1.1安装和导入NumPy219
9.1.2创建ndarray数组对象219
9.1.3ndarray数组对象的属性222
9.1.4ndarray数组的数据类型及类型转换225
9.1.5其他创建ndarray数组的方法229
9.1.6ndarray数组的索引与切片238
9.1.7ndarray数组的运算243
9.1.8ndarray数组的常用数学函数246
9.2Pandas数据分析库的使用247
9.2.1安装和导入Pandas库247
9.2.2Pandas的Series对象248
9.2.3Pandas的DataFrame对象254
9.2.4Pandas的文件操作267
9.2.5计算统计271
9.3习题272
第10章数据可视化/274
10.1Matplotlib绘图274
10.1.1安装和导入Matplotlib库274
10.1.2绘图的步骤274
10.1.3画布与子图275
10.1.4绘制折线图280
10.1.5绘制散点图285
10.1.6绘制条形图286
10.1.7绘制直方图293
10.1.8绘制饼图295
10.2Pandas绘图298
10.2.1用Pandas绘图的步骤298
10.2.2绘制折线图300
10.2.3绘制条形图304
10.2.4绘制直方图306
10.3习题308
第11章爬取与分析网页数据/312
11.1爬取网页的urllib库312
11.1.1urllib库312
11.1.2使用urlopen()方法获取网页313
11.1.3使用Request()方法包装请求321
11.2解析网页的BeautifulSoup库322
11.2.1安装与导入BeautifulSoup323
11.2.2BeautifulSoup对象324
11.3习题327
第12章SQLite数据库操作/328
12.1Python操作数据库的一般步骤328
12.2SQLite数据库简介328
12.3连接SQLite数据库329
12.4创建游标对象330
12.5执行SQL数据操作331
12.6应用实例333
12.7习题346
参考文献/347