编辑推荐
适读人群 :适合作为中学生“信息技术”课程的配套阅读资料,也可作为Python入门参考书 针对性强。《中学生可以这样学Python》全书内容紧密结合高中信息技术课程,围绕课程中的内容进行深入讲解,并进行适当的扩展,同样也适用于高年级初中生阅读。
代码紧跟Python*新版本。书中所有代码适用于Python 3.4.x、Python 3.5.x和Python 3.6.x,以及将要发布的Python 3.7.x。
例题丰富、代码纯正、讲解透彻。《中学生可以这样学Python》中所有例题都配有相应的解析和源代码,并且对重要的源代码都加了注释来说明代码思路以方便理解。
形式多样化、内容立体化。书中重点内容通过圆点进行了标记,并通过小技巧、小提示、注意等多种形式方便阅读和理解;另外,《中学生可以这样学Python》中所有例题和案例都配有相应的二维码,通过扫描可以快速下载源代码,减少代码输入时间,节约宝贵的学习时间。
内容简介
《中学生可以这样学Python》以Python 3.5.x为主,同时兼容Python 3.4.x,并考虑了Python 3.6.x的部分新特性,重点介绍Python基本语法以及常用内置对象和标准库对象的用法。主要内容包括Python开发环境,Python基本数据类型、运算符与内置函数,常用的选择结构语法和应用,for循环与while循环,列表、元组、字典、集合和字符串等常用序列结构,函数基本用法,面向对象程序设计,解析算法、枚举算法、递推算法、递归算法、排序算法及查找算法的原理与Python实现,SQLite数据库及Python操作SQLite数据库的方法,大数据处理基础及Spark编程基础知识,以及通过电子时钟、猜数游戏、通讯录管理程序、图片浏览程序和温度单位转换这几个综合案例介绍Python的项目开发过程。
《中学生可以这样学Python》适合作为中学生“信息技术”课程的配套阅读资料,也可作为Python入门参考书。
作者简介
作者简介
董付国,副教授,自2000年开始一直任教于山东工商学院计算机学院,先后出版《Python程序设计》、《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》、《Python程序设计开发宝典》、《中学生可以这样学Python》等系列教材,多次获得校级教学优秀效果一等奖,分别使用C#和Python开发过多套适用于油田、煤矿的大型系统以及在线考试系统和课堂教学管理系统,发表科研论文40余篇,近30篇被EI收录,业余爱好杨氏太极拳传统85势大架。
应根球,高级讲师,计算机软件系统分析师,浙江省温州市永嘉县教师发展中心初中信息技术、创客教育研训员,温州市教坛中坚,多篇教师教育成果获省级奖,先后开发过成绩处理系统、县教育系统民意测评系统等。
目录
目录
第1章Python概述1
1.1Python语言简介1
1.2常用的Python开发环境2
1.2.1IDLE2
1.2.2Eclipse+PyDev3
1.2.3PAGE for Python5
1.3Python代码编写规范6
1.4安装扩展库8
1.5标准库与扩展库对象的导入和使用11
1.5.1导入整个模块11
1.5.2明确导入模块中的特定对象12
1.5.3一次导入特定模块中的所有对象12
1.6本章知识要点13
第2章Python编程基础14
2.1基本数据类型14
2.1.1常用内置对象14
2.1.2常量与变量15
2.1.3数字类型17〖1〗中学生可以这样学Python〖1〗目录2.1.4字符串19
2.1.5序列20
2.2运算符与表达式21
2.2.1算术运算符22
2.2.2关系运算符24
2.2.3成员测试运算符和同一性测试运算符25
2.2.4逻辑运算符27
2.2.5集合运算符28
2.3常用内置函数30
2.3.1基本输入输出函数33
2.3.2数字有关的函数35
2.3.3序列有关的函数38
2.3.4精彩例题分析与解答45
2.4常用标准库用法简介46
2.4.1数学模块math47
2.4.2随机模块random49
2.4.3日期时间模块datetime50
2.4.4小海龟画图模块turtle51
2.4.5图形界面开发模块tkinter53
2.5本章知识要点54
第3章选择结构56
3.1单分支选择结构56
3.2双分支选择结构58
3.3多分支选择结构59
3.4选择结构的嵌套60
3.5pass语句62
3.6精彩例题分析与解答62
3.7本章知识要点64
第4章循环结构65
4.1for循环与while循环65
4.2break与continue语句66
4.3精彩例题分析与解答67
4.4本章知识要点75
第5章Python序列及应用76
5.1列表77
5.1.1列表创建与删除78
5.1.2列表元素访问79
5.1.3列表常用方法80
5.1.4列表对象支持的运算符84
5.1.5内置函数对列表的操作85
5.1.6精彩例题分析与解答86
5.2元组92
5.2.1元组创建与元素访问92
5.2.2元组与列表的异同点93
5.3字典95
5.3.1字典创建与删除96
5.3.2字典元素的访问96
5.3.3元素添加、修改与删除98
5.3.4精彩例题分析与解答99
5.4集合100
5.4.1集合对象创建与删除101
5.4.2集合操作与运算102
5.4.3精彩例题分析与解答104
5.5字符串106
5.5.1字符串编码格式简介106
5.5.2转义字符107
5.5.3字符串格式化109
5.5.4字符串常量111
5.5.5字符串对象的常用方法111
5.5.6精彩例题分析与解答120
5.6推导式124
5.6.1列表推导式124
5.6.2生成器推导式127
5.7序列解包128
5.8切片131
5.8.1使用切片获取部分列表、元组、字符串中的元素131
5.8.2使用切片对列表进行元素插入、删除、修改和替换操作133
5.9本章知识要点134
第6章函数136
6.1函数定义与调用136
6.2函数参数139
6.2.1默认值参数140
6.2.2关键参数142
6.3变量作用域143
6.4函数递归调用145
6.5lambda表达式146
6.6精彩例题分析与解答147
6.7本章知识要点151
第7章面向对象程序设计153
7.1面向对象程序设计简介153
7.2类的定义与实例化154
7.3数据成员与成员方法155
7.3.1私有成员与公有成员155
7.3.2数据成员156
7.3.3成员方法、类方法、静态方法157
7.4属性160
7.5继承163
7.6多态165
7.7精彩例题分析与解答166
7.8本章知识要点170
第8章常用算法的Python实现171
8.1解析算法案例分析171
8.2枚举算法案例分析176
8.3递推算法案例分析180
8.4递归算法案例分析183
8.5分治算法原理简介190
8.6排序算法案例分析190
8.7查找算法案例分析194
8.8本章知识要点196
第9章SQLite数据库编程基础197
9.1SQLite数据库简介197
9.2Python标准库sqlite3简介198
9.3常用SQL语句199
9.4精彩例题分析与解答201
9.5本章知识要点209
第10章大数据处理基础210
10.1大数据的基本概念与主要特征210
10.2大数据处理框架Spark与Python编程211
10.3精彩例题分析与解答216
10.4本章知识要点217
第11章综合案例设计与分析218
11.1GUI版电子时钟218
11.2GUI版猜数游戏221
11.3GUI版通讯录管理程序225
11.4GUI版图片浏览程序231
11.5GUI版温度单位转换程序234
11.6本章知识要点242
附录APython关键字清单243
附录B常用Python扩展库清单245
参考文献246
精彩书摘
第5章
Python序列及应用
Python中常用的序列结构有列表、元组、字典、字符串、集合等(虽然有人并不主张把字典和集合看成序列,但这真的不重要),从是否有序这个角度可以分为有序序列和无序序列两大类,从是否可变来看则可以分为可变序列和不可变序列两大类,如图5��1所示。另外,生成器对象和range、map、enumerate、filter、zip等对象的某些用法也类似于序列,尽管这些对象更大的特点是惰性求值。列表、元组、字符串等有序序列以及range对象均支持双向索引,第一个元素下标为0,第二个元素下标为1,以此类推;如果使用负数作为索引,则最后一个元素下标为-1,倒数第二个元素下标为-2,以此类推。可以使用负整数作为索引是Python有序序列的一大特色,熟练掌握和运用可以大幅度提高开发效率。
图5��1Python序列分类示意图〖1〗中学生可以这样学Python〖1〗第5章Python序列及应用
注意: 有人认为不应该把字典和集合看成Python序列,但这并不重要。虽然这两种类型与列表、元组、字符串有些区别,但也有很多相同的用法,放在一起讨论和比较也是合适的。5.1列表
列表是包含若干元素的有序连续内存空间。在形式上,列表的所有元素放在一对中括号内,相邻元素之间使用逗号分隔。在Python中,同一个列表中元素的数据类型可以各不相同,列表中可以同时包含为整数、实数、字符串等基本类型的元素,也可以包含列表、元组、字典、集合以及其他任意对象,如果只有一对方括号而没有任何元素则表示空列表。下面几个都是合法的列表对象:
注意: 列表的功能非常强大,有人戏称列表是“打了激素的数组”。但是列表负担也比较重,开销很大,所以效率很低。在实际开发中,最好根据实际的问题选择一种合适的数据类型,要尽量避免使用列表,优先使用后面介绍的字典和集合。
注意: 由于Python变量并不直接存储值,而是存储值的引用(或内存地址),因此列表中的元素在逻辑上是连续的而物理上并不一定是连续的。例如: >> x = [1, 'a', [3]]
>>> id(x[0])
1580377184
>>> id(x[1])
1737643593264
>>> id(x[2])
17376532837205.1.1列表创建与删除
使用赋值运算符“=”直接将一个列表赋值给变量即可创建列表对象,例如: >> a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
>>> a_list = [] #创建空列表也可以使用list()函数把元组、range对象、字符串、字典、集合或其他可迭代对象转换为列表。需要注意的是,把字典转换为列表时默认是将字典的“键”转换为列表,而不是把字典的元素转换为列表,如果想把字典的元素转换为列表,需要使用字典对象的items()方法明确说明,当然也可以使用values()来明确说明要把字典的“值”转换为列表。>> x = list() #创建空列表
>>> list((3,5,7,9,11))#将元组转换为列表
[3, 5, 7, 9, 11]
>>> list(range(1,10,2))#将range对象转换为列表
[1, 3, 5, 7, 9]
>>> list('hello world')#将字符串转换为列表
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> list({3,7,5})#将集合转换为列表
[3, 5, 7]
>>>list({'a':3, 'b':9, 'c':78})#将字典的"键"转换为列表
['a', 'c', 'b']
>>> list({'a':3, 'b':9, 'c':78}.values())#将字典的"值"转换为列表
前言/序言
前言
Python语言由Guido van Rossum于1989年底开始设计,并于1991年公开发行,比Java语言面世还要早4年。Python推出不久就迅速得到各行业人士的青睐,在编程语言排行榜上的名次也不断上升。2011年1月,Python被TIOBE网站评为2010年度语言;在2014年12月IEEE Spectrum推出的编程语言排行榜中,Python取得了第5位的好名次;2015年和2016年连续两年Python在TIOBE编程语言排行榜上一直稳居第4位,仅次于Java、C和C++;Top developer Languages of 2015更是把Python排到了第3位。
经过近30年的发展,Python已经渗透到统计分析、移动终端开发、科学计算可视化、系统安全、逆向工程、软件测试与软件分析、密码学、电子取证、图形图像处理、人工智能、机器学习、深度学习、游戏设计与策划、网站开发、数据爬取与大数据处理、系统运维、音乐编程、影视特效制作、计算机辅助教育、医药辅助设计、天文信息处理、化学、生物信息处理、神经科学与心理学、自然语言处理、电子电路设计、树莓派等几乎所有专业和领域,在黑客领域更是一直拥有霸主地位。
著名搜索引擎Google的核心代码使用Python实现,迪士尼公司的动画制作与生成采用Python实现,几乎所有UNIX和Linux操作系统都默认安装了Python解释器,豆瓣网使用Python作为主体开发语言进行网站架构和相关应用的设计与开发,网易网络游戏超过70%的服务器端代码采用Python进行设计与开发,易度的PaaA企业应用云端开发平台和百度云计算平台BAE也都大量采用了Python语言,eBay已经使用Python超过15年以上, 美国宇航局使用Python实现了CAD/CAE/PDM库及模型管理系统,Yahoo使用Python建立全球范围的站点群,微软集成开发环境Visual Studio 2015开始默认支持Python语言,开源ERP系统Odoo完全采用Python语言开发,树莓派使用Python作为官方编程语言,引力波数据使用Python进行处理和分析,TensorFlow等大量深度学习框架都提供了Python接口,YouTube、美国银行也在大量使用Python进行开发,类似的案例数不胜数。
〖1〗中学生可以这样学Python〖1〗前言Python是一门免费、开源的跨平台解释型高级动态编程语言,支持命令式编程、函数式编程和面向对象程序设计,拥有大量功能强大的内置对象、标准库和涉及各行业领域的扩展库,使得各领域的工程师、科研人员、策划人员和管理人员能够快速实现和验证自己的思路、创意或者推测。在有些编程语言中需要编写大量代码才能实现的功能,在Python中直接调用内置函数或标准库方法即可实现,大幅度减少了代码量,更加方便代码阅读和维护。Python用户只需要把主要精力放在业务逻辑的设计与实现上,在开发速度和运行效率之间达到了完美的平衡,其精妙之处令人赞叹。
内容组织与阅读建议
全书共11章,其中应根球老师负责编写2.4.4、2.4.5、11.5节的内容,并在全书内容组织过程中提供了大量非常好的思路和建议。本书重点介绍Python基本语法和内置对象的用法,以Python为载体介绍了中学阶段常用的算法,以及数据库操作和大数据处理的一些基础知识。书中设计了大量例题和源代码,并配有相应的例题解析和代码注释,建议不要错过任何一个知识点,反复阅读和认真体会Python语言的奥妙,并亲自动手输入和调试这些代码。如果某段代码暂时看不懂的话,很可能是使用到了后面的知识,因此我个人更建议先把全书内容快速浏览一遍,了解大概有哪些知识,然后再从头到尾仔细阅读并在必要的时候翻阅相关章节。
第1章介绍Python语言编程规范与代码优化建议、开发环境配置、扩展库安装以及标准库与扩展库对象的导入和使用。
第2章介绍Python基本数据类型、运算符与内置函数的用法以及math、random、datetime和tkinter等常用标准库的用法。
第3章介绍常用的选择结构语法和应用。
第4章介绍for循环与while循环以及break语句和continue语句的用法。
第5章介绍列表、元组、字典、集合、字符串等常用序列结构以及列表推导式与生成器推导式、序列解包与切片操作。
第6章介绍函数基本用法、函数参数、变量作用域、函数递归调用以及lambda表达式。
第7章介绍类的定义与实例化、数据成员与成员方法、私有成员与公有成员以及类方法与静态方法。
第8章介绍解析算法、枚举算法、递推算法、递归算法、排序算法以及查找算法的原理与Python实现。
第9章介绍SQLite数据库、常用SQL语句以及Python操作SQLite数据库的方法。
第10章介绍大数据处理基础、大数据特征以及pyspark编程基础知识。
第11章通过电子时钟、猜数游戏、通讯录管理程序、图片浏览程序和温度单位转换等综合案例介绍Python的项目开发过程。
配套资源
本书提供所有案例源代码,可以登录清华大学出版社网站(www.tup.com.cn)下载,或加入本书读者群(QQ群号为618117142,加入时请注明“中学生读者”,如果这个群满了则会在群简介中给出下一个群号)下载最新配套资源并与我交流,也欢迎关注微信公众号“Python小屋”及时阅读作者写的最新代码。
本书适用读者
本书可以作为(但不限于):
�r 中学生“信息技术”课程的配套阅读资料。
�r Python入门参考书。
感谢
感谢每一位读者,感谢您在茫茫书海中选择了这本书,希望您能够从本书中受益,学到真正需要的知识!衷心祝愿每一位同学都能考上理想的大学,同时也期待大家的热心反馈,随时欢迎您指出书中的不足!
本书在编写出版过程中也得到了清华大学出版社的大力支持和帮助,尤其是非常有远见的责任编辑白立军老师对这套Python系列图书的策划,一并表示衷心的感谢!
董付国于山东烟台2017年3月
中学生可以这样学Python 电子书 下载 mobi epub pdf txt