新書推薦:
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:NT$
301.0
《
控制权视角下的家族企业管理与传承
》
售價:NT$
398.0
《
冯友兰和青年谈心系列
》
售價:NT$
762.0
《
利他主义的生意:偏爱“非理性”的市场(英国《金融时报》推荐读物!)
》
售價:NT$
352.0
《
认知行为疗法:心理咨询的顶层设计
》
售價:NT$
454.0
《
FANUC工业机器人装调与维修
》
售價:NT$
454.0
《
吕著中国通史
》
售價:NT$
286.0
《
爱琴海的光芒 : 千年古希腊文明
》
售價:NT$
908.0
|
編輯推薦: |
本书分上下两册。上册为中学生Python编程基础,目标为广大中学生;下册内容分C 语言进阶、数据结构、基础算法部分,目标对象为参加信息学奥赛的同学,使他们能够从Python编程平滑过度到C 编程,为竞赛打下坚实基础。
|
內容簡介: |
本书是面向具有一定逻辑思维和数学基础的中学高年级学生的Python程序设计及算法竞赛入门教材,采用通俗易懂的语言,注重基础,注重实践,以提高中学生编程实践水平为指导方针,从毫无经验、刚开始接触程序设计的初学者的角度组织章节内容,以期能为中学生了解Python和算法设计思想打下良好基础。全书理论联系实际,材料组织合理,知识体系完整,内容由浅入深,讲述力求清晰,示例丰富完整,引导学生从“算法”的角度考虑问题并设计代码。
本书可作为中学生入门Python编程与算法竞赛的辅导用书。
|
目錄:
|
第1章Python入门编程3
1.1概述3
1.1.1面向底层硬件的“低级”语言4
1.1.2方便用户编程的“高级”语言4
1.1.3Python语言的主要特点5
1.1.4Python编程环境8
1.1.5简单的数据类型与基本操作9
1.1.6变量、常量、表达式11
1.2Python安装与常用集成开发环境(IDE)简介12
1.2.1安装Python12
1.2.2Python常用开发环境简介14
1.3简单的Python语句与代码撰写基本规范23
1.3.1进入Python解释器23
1.3.2简单的表达式与语句24
1.3.3基本运算符26
1.3.4数字和字符串29
1.3.5代码撰写的基本规范33
1.4常用内置方法和标准方法简介34
1.4.1常见的内置方法34
1.4.2标准库方法40
1.5外部扩展库40
1.5.1安装41
1.5.2使用43
本章小结与复习44
习题44
第2章Python基本程序流程与控制结构46
2.1程序流程图与伪码46
2.2条件选择结构48
2.3多条件分支与嵌套条件语句51
2.4循环结构概述54
2.4.1while循环54
2.4.2for循环56
2.5while循环和for循环程序设计56
2.6break、continue、else子句61
2.7嵌套结构62
本章小结与复习66
习题67
第3章Python序列化数据及推导式69
3.1概述69
3.1.1序列化数据69
3.1.2推导式70
3.2序列化数据的主要特点和常用内置函数70
3.2.1主要特点70
3.2.2常用内置函数75
3.3字符串77
3.3.1基本特性77
3.3.2常用的字符串内置方法79
3.4列表和元组83
3.4.1列表和元组的主要异同点83
3.4.2列表和元组的常用方法85
3.4.3列表和元组的推导(生成)式90
3.5字典和集合94
3.5.1字典和集合的主要异同点94
3.5.2字典和集合的常用方法95
3.5.3字典和集合的推导(生成)式99
本章小结与复习100
习题101
第4章函数与面向对象程序设计入门103
4.1概述103
4.2定义函数104
4.3函数的调用及其返回值106
4.4函数参数109
4.5变量的作用域114
4.6函数的递归调用116
4.7lambda匿名函数121
4.8面向对象程序设计入门123
4.8.1类及其实例化123
4.8.2封装中的私有属性和私有方法126
4.8.3继承与多态126
本章小结与复习129
习题129
第5章Python文件与路径的基本操作130
5.1读写文本文件130
5.1.1打开和关闭文件的基本操作131
5.1.2读写文本文件的基本操作132
5.1.3读写CSV文件的基本操作137
5.2文件路径的基本操作140
本章小结与复习151
习题152
Part Ⅱ算法与竞赛入门
第6章算法入门157
6.1算法是什么157
6.2基本算法简介158
6.2.1枚举法158
6.2.2贪心法160
6.2.3分治法161
6.2.4递归法162
6.3线性表、栈、队列164
6.3.1线性表164
6.3.2栈168
6.3.3队列171
6.4朴素的字符串匹配算法172
6.5简单排序算法174
6.5.1冒泡排序174
6.5.2快速排序算法177
6.5.3冒泡排序和快速排序算法所用时间的比较179
本章小结与复习180
习题181
第7章算法竞赛入门183
7.1时间复杂度概述183
7.1.1引例183
7.1.2时间复杂度184
7.2算法模拟与暴力求解189
7.3图的遍历问题196
7.3.1图节点的遍历及搜索问题197
7.3.2基于回溯的深度优先搜索算法的设计与实现197
7.3.3广度优先搜索算法的设计与实现205
7.4并查集问题及其算法设计213
7.5动态规划入门217
7.6算法与算法类竞赛简介219
7.6.1算法家族的“准全家福”219
7.6.2算法类竞赛简介220
7.6.3语言的选择和学习建议222
本章小结与复习223
习题224
参考文献225
|
內容試閱:
|
近年来,国家不断鼓励和支持中小学开展人工智能及信息技术课程的教学,尤其是在当前“双减”政策的背景下,中学生对计算机编程教育的需求日益强烈。在日常教学和科学实践过程中搭建专业的计算机编程体系,并在算法设计方面引导中学生入门和提高,不仅符合时代发展的需要,更能提高中学生的逻辑思维和数学分析、算法设计能力,而学习算法和计算机编程相关知识,对日后的专业发展,特别是对有志于日后选择理工科专业的中学生来说是十分必要的。
本书不是一部面向具有一定编程基础和算法设计能力的学生的赛前集训教材,而是面向中学高年级学生(他们应该具有一定的逻辑思维和数学基础)的Python程序设计基础及算法竞赛入门教材,目的是向没有编程基础的中学生普及Python程序设计的基础知识,介绍算法入门知识,并力争在相关的算法竞赛中提升他们的算法设计水平。其实,在各类算法竞赛中,目前较为常见的编程语言是C(含C )程序设计语言,而且目前针对广大中学生群体(而非参加顶级竞赛的尖子选手)的程序设计类教材还不够丰富,且部分算法竞赛教材着眼于赛前集训,这类教材往往会让编程零基础的广大普通中学生“望而却步”。本书选择Python语言作为算法设计的编程语言,主要考虑如下两点: 第一,随着人工智能和移动互联网时代的来临,Python程序设计语言显示出强大的生命力,特别是由于其简洁的语法、“胶水”特性等,它不仅能在一些算法设计、人工智能的复杂应用场合(如自然语言处理、图像识别等)中发挥作用,更适宜在广大零基础的中学生中普及;第二,C(含C )语言相较于Python来说略显复杂(如指针使用、地址分配、内存管理与优化等),且C是弱类型、静态类型检查的、面向过程的编程语言,而Python对于零基础的初学者来说相对更容易入门。鉴于本书的科普性质和读者定位,我们选择Python语言进行介绍。
本书结合中学生的认知特点,采用通俗易懂的语言,注重基础,注重实践,以提高中学生编程实践水平为指导方针,从毫无经验、刚开始接触程序设计的初学者的角度组织章节内容,以期能为中学生了解Python和算法设计思想打下良好基础。全书分两部分组织内容,第1~5章是Python程序设计基础: 第1章介绍Python编程基础,主要介绍Python特点、基本数据类型、代码撰写规范、常用内置方法和部分标准方法、外部方法的使用等;第2章介绍常用的流程控制,主要介绍条件选择语句块(ifelse条件选择语句)、循环语句块(while循环和for循环)等;第3章简介序列化数据,主要介绍字符串、列表、元组、字典、集合及其相应的推导式等;第4章介绍函数,内容涉及函数定义、参数与值传递、返回值、变量作用域、函数递归调用、lambda表达式等;第5章介绍文件与路径操作,内容涵盖文件读写操作、路径操作等。第6、7章是算法与竞赛入门,主要内容涉及基础算法知识、常见的基础数据结构算法、图论相关知识、并查集、动态规划等,并从优化时间复杂度的角度出发简介算法竞赛中应考虑的一些问题: 第6章简介算法与枚举、贪心、分治、递归等的设计思想,简介线性表、栈、队列、朴素的字符串匹配、简单的排序算法等;第7章是算法竞赛入门,首先对算法的时间复杂度进行概述,其次简介算法模拟与暴力求解思想,简介图的深度遍历和广度遍历,简介并查集问题及其算法设计以及动态规划的入门知识等,最后对算法与算法类竞赛进行简介。
需要说明的是,作为面向中学生的编程类科普读物,本书既不是有关Python的“知识大全”(相关内容可参阅市场上其他有关Python的参考书,因此书中既没有涉及有关面向对象程序设计、正则表达、异常处理结构与程序调试、GUI编程、网络程序设计、多线程与多进程、数据库处理、多媒体编程等,也不涉及对绘图工具(如turtle)、图形开发界面(如Tkinter)、大数据可视化工具(如Matplotlib)、数据结构化工具(如Pandas)等内容的介绍),也不是专门针对诸如全国青少年信息学奥林匹克竞赛(NOI)等的备赛手册,而是面向广大没有任何编程基础的中学生的一本科普读物,目的是引导缺乏编程经验的中学生迅速了解程序设计和算法入门等知识,使得中学生能掌握基于Python以及算法设计的基本思想和方法,掌握常见程序结构的设计思路,提高编程能力,并在此基础上了解算法基础知识,为树立计算思维打下坚实基础,以期能为日后更进一步的学习和有可能参加的各种竞赛打下基础。对于部分编程基础好的学生,更可通过进一步的学习或参加相关的算法竞赛提升自身的综合素质。打个比方,如果把“算法”看作一座大厦,那么本书“Python程序设计基础”部分就好像建筑原材料(如水泥、钢筋等),“算法和竞赛入门”部分则是在打基础和夯实地基。只有了解了Python基础,掌握了算法的入门知识,并在日后数学基础知识逐步丰富和完善的基础上,经过不断的编程实践,才能逐步打开算法世界的大门,探索算法和数学之美。
本书理论联系实际,材料组织合理,知识体系完整,内容由浅入深,讲述力求清晰,示例丰富完整。本书也是编者团队在北京外国语大学附属石家庄外国语学校开展人工智能授课和带领学生进行科技实践的基础上,结合中学生的认知特点而撰写的一部Python程序设计基础及算法竞赛入门教材,其编写指导思想是注重基础,注重实践,提高中学生编程实践和算法设计水平。在编写第1章至第5章时,我们参考了人民教育出版社2019年版的普通高中教科书《信息技术》中有关Python的部分内容要求,并适当进行了扩展和难度提升,给出的例题有代表性、针对性和实用性,注重对实践能力的培养,可以帮助初学者快速上手,为读者进一步学习程序设计奠定基础。其中,表示重要提示内容或知识拓展内容;表示课堂练习题;表示思考题;为本章思考与练习题。第6章和第7章的难度有较大跃升,适合有一定编程或算法基础的读者使用。教师可根据学生掌握知识的实际情况因材施教,有针对性地选讲相关章节内容,引导学生从算法的角度考虑问题并设计代码。
本书在每章后均配有一定数量的习题。全书各章的例题和习题的完整代码可以在清华大学出版社网站(http://www.tup.tsinghua.edu.cn)提供的相应章节的Jupyter Notebook文档中找到,方便读者实践与验证。另外,鉴于本书的科普性质,为了便于读者阅读,也为了纸质版图书的内容清晰可读,本书在叙述内容的过程中均使用了全角符号(如将函数后的参数列表圆括号用醒目的全角字符代替,但上机实际运行时,函数后的参数列表必须使用半角的小圆括号)、添加了易于观察的空格(如_ _main_ _,但上机实际运行时应为__main__)。
本书受到河北省科学技术协会科普创作出版资金项目资助。主编高凯、张高飞来自河北科技大学,副主编来自北京外国语大学附属石家庄外国语学校等相关单位。在本书的写作过程中,北京外国语大学附属石家庄外国语学校的张影、范沙玲、燕慧慧、陈晨,以及河北科技大学的魏育康为本书提出了很多有价值的修改建议。同时,有关Python相关网站也为本书的编写提供了大量帮助,我们也参考了相关文献和互联网上众多网友提供的素材,在此谨向这些文献的作者、网友以及为本书提供帮助的人们,特别是那些由于篇幅所限未在参考文献中提及的相关文献的作者和网站,致以诚挚的谢意和崇高的敬意,在此一并表示衷心的感谢。
本书可作为中学生信息技术课程的课外教学辅导用书和算法类竞赛的备赛用书,也可供广大Python初学者以及有志参加中学生算法竞赛的读者参考。由于我们的学识、水平均有限,书中不妥之处在所难免,恳请广大读者批评指正。
编者
2024年1月
|
|