python趣味编程:从入门到人工智能
近年来,从欧美兴起的新一轮青少年编程教育浪潮席卷全球,在中小学阶段推广和普及编程教育已经成为全球各国的共识。2017年7月,**发布的《新一代人工智能发展规划》提出,要在中小学阶段设置人工智能相关课程,并逐步推广编程教育。这极大地推动了青少年编程教育在国内的普及。在众多的编程语言中,比较适合广大青少年学习的编程语言是Scratch和Python。青少年可以选择图形化编程语言Scratch作为第一门编程语言,之后转向具有完整编程特性的Python语言。
Python是一种通用型编程语言,它具有良好的可扩展性和适应性,易于学习,被广泛应用于云计算、人工智能、科学运算、Web开发、网络爬虫、系统运维、图形GUI、金融量化投资等众多领域。无论是客户端、云端,还是物联网终端,都能看到Python的身影,可以说,Python的应用无处不在。特别是在移动互联网和人工智能时代,Python越来越受到编程者的青睐,成为近年来热度增长最快的编程语言之一。在TIOBE、RedMonk等世界编程语言排行榜中,Python语言名列前茅。因此,学习Python语言是一个非常不错的选择。
本书特点
(1) 讲授最新的Python 3.7版本,更适合零基础的初学者。
(2) 采用单元课程的形式编排内容,用趣味案例激发学生兴趣,更适合青少年学生学习。
(3) 以解决问题为导向,注重培养编程思维,让学生感受到编程是有用的。同时,讲解编程知识以“够用”为原则,带领初学者避开技术陷阱。
(4) 教学案例丰富多彩,有数学计算、绘画、游戏和人工智能等,让学生体验编程的乐趣。
(5) 每课均有课后练习题,让初学者巩固所学知识。
本书主要内容
本书共分为四个单元。
第1单元是编程基础,安排了16个课程,讲授结构化与面向对象程序设计的基础知识。首先从变量、数据类型、运算符和表达式等基本概念讲起,通过编写输入、处理、〖1〗〖1〗输出“三步曲式”的简单程序以及学习小海龟绘图,逐步熟悉Python开发环境和编程方式;然后讲授使用顺序结构、选择结构和循环结构等编写结构化的程序,同时结合流程图描述算法,逐步掌握结构化的编程思想;最后讲授利用函数进行模块化设计以及面向对象的编程知识。这个单元在教学案例设计上讲究趣味性和知识性,通过解决去火星要多久、八十天环游地球、棋盘麦粒、恺撒加密、莫尔斯码等问题,让初学者感受到编程是有用的,它能够解决身边的问题,从而激发他们学习编程的兴趣。
第2单元是数学与算法,安排了11个课程,讲授基本的算法策略、排序和查找算法、分形图和数学曲线的画法。其中,4个课程讲授使用枚举、递推、模拟等算法策略编程解决方程问题、逻辑推理问题等,案例有隔沟算羊、李白沽酒、水手分椰子等;5个课程讲授冒泡排序、选择排序、插入排序、快速排序和二分查找等算法;还有2个课程讲授勾股树分形图的画法和利用参数方程绘制玫瑰曲线图形,在练习题中还介绍谢尔宾斯基三角形和六角星雪花分形图、心形曲线和蝴蝶曲线的画法。
第3单元是游戏编程,安排了4个课程,讲授使用Pyglet类库编写游戏程序。首先是学习Pyglet编程基础,然后安排了3个趣味游戏项目,分别是公主迎圣诞、疯狂摩托和捕鱼达人。让初学者通过编写游戏程序进行编程实践,以“玩中学”的形式巩固编程知识。
第4单元是人工智能,安排了4个课程,讲授使用OpenCV类库编写人工智能技术应用项目。首先学习OpenCV编程基础,然后安排了3个体验性质的编程项目,分别是人脸识别、目标检测和绘画大师。让初学者通过人工智能技术的应用,消除人工智能技术的神秘感。
本书学习资源
本书中的程序基于Python 3.7版本编写,所有示例程序均已调试通过。
本书适用对象
本书是零起点教材,适合广大青少年和所有对编程感兴趣的初学者阅读,也适合作为学校编程社团和编程培训机构的教材。
让我们开始奇妙的Python编程之旅吧!
目录
第1 单元编程基础
第1课似曾相识——遇见Python3
第2课计算圆周率——神奇计算器10
第3课编程宣言——hello,world14
第4课照猫画虎——剖析Python程序19
第5课去火星要多久——变量和表达式25
第6课八十天环游地球——函数的使用33
第7课几何拼贴画——海龟绘图42
第8课高烧100℃——顺序结构51
第9课飞向太空——选择结构56
第10课棋盘麦粒——循环结构67
第11课恺撒加密——字符串处理78
第12课素数筛法——列表的使用89
第13课莫尔斯码——字典的使用100
第14课数字黑洞——自定义函数108
第15课图像转字符画——使用库编程120
第16课物以类聚——面向对象编程128
第2单元数学与算法
第17课隔沟算羊——枚举策略143
第18课李白沽酒——递推策略150
第19课水手分椰子——模拟策略155
第20课谁是雷锋——逻辑推理159
第21课向右看齐——冒泡排序164
第22课挑选苹果——选择排序169
第23课整理扑克——插入排序174
第24课分而治之——快速排序179
第25课猜数游戏——二分查找186
第26课勾股树——分形之美192
第27课玫瑰曲线——数学之美200
〖1〗〖1〗第3单元游戏编程
第28课Pyglet编程初步209
第29课公主迎圣诞223
第30课疯狂摩托239
第31课捕鱼达人249