Python趣味创意编程
上QQ阅读APP看书,第一时间看更新

前言

随着人工智能时代的来临,计算机软件在日常生活中起到越来越重要的作用,编写计算机程序极有可能成为未来社会的一项重要生存技能。在众多的文本式编程语言中,Python语法简单、上手容易、功能强大、应用广泛,越来越得到初学者的青睐。

然而,目前大部分Python图书都会先系统讲解语法知识,知识量大,读者学习困难;所举实例一般偏数学算法,过于抽象,趣味性不强,读者不愿写程序,进而觉得入门困难。也有部分图书基于海龟绘图,利用代码绘制几何图形吸引读者兴趣;然而海龟绘图功能简单、不支持互动、趣味性一般。

针对以上问题,本书把互动艺术、创意编程应用于Python教学,通过15个由易到难的有趣案例,带领读者从零基础开始学习。书中不安排专门章节讲解语法知识,而是穿插在互动创意程序开发的过程中,通过具体案例逐步学习新的语法知识,便于读者理解,并在实际应用中体会。书中案例经过精心的设计,所有代码均不超过100行,适合上手。学习编程时,读者看到用Python可以编出好看、好玩的程序,感到有趣、有成就感,就会自己钻研,与他人积极互动,学习效果也会得到显著提升。

本书通过创意编程案例逐步引入语法知识,用Python从无到有地开发,提升读者对编程的兴趣和能力。全书共16章和两个附录。

第1章介绍了计算机程序和Python编程语言的基本概念,介绍了互动艺术开发工具Processing的下载安装。

第2章介绍了整数、变量、算术运算符等语法知识,实现了一个转动眼珠的圆脸(20行代码)。

第3章介绍了for循环语句、整除、取余等语法知识,实现了催眠的同心圆(12行代码)。

第4章介绍了if选择判断、比较大小运算符、逻辑运算符等语法知识,实现了旋转的圆弧(23行代码)。

第5章介绍了类型转换,实现了鼠标交互的简易毛笔字(52行代码)。

第6章介绍了循环嵌套、中文字符串处理,实现了旋转的方块(19行代码)。

第7章介绍了随机函数、RGB颜色模型,实现了随机扭动的曲线(33行代码)。

第8章介绍了列表,实现了随风飘动的多个粒子(38行代码)。

第9章介绍了无参数函数的定义、复合运算符,实现了互相作用的圆球(52行代码)。

第10章介绍了带参数的函数、HSB颜色模型,实现了随机山水画(52行代码)。

第11章介绍了函数的递归调用、if-elif-else语句,绘制了递归分形树(62行代码)。

第12章介绍了面向对象编程,包括类和对象、成员变量、成员函数、构造函数等语法知识,实现了粒子同心圆(43行代码)。

第13章介绍了while循环语句、图像的基本概念,实现了图像像素采样效果(28行代码)。

第14章介绍了字符串元素的处理,实现了定制字符画的效果(34行代码)。

第15章利用Minim库进行音频信号的处理,实现了一种音乐可视化的效果(60行代码)。

第16章利用Video库进行摄像头视频的获取与处理、OpenCV库进行人脸的实时检测跟踪,实现了坚持一百秒的体感游戏(98行代码)。

附录A给出了书中所有练习题的参考答案。

附录B列出了Python语法知识在书中出现的对应位置。

和市面上同类图书相比,本书有以下几个鲜明的特色。

  • 为初学者量身打造。一般的Python图书会系统讲解所有的语法知识,初学者记忆负担大、学习难度高;本书先讲解较少的语法知识,然后利用这些语法知识编写互动创意程序,通过案例逐步引入新的语法知识,便于读者学习理解。案例从易到难,所有程序的代码均不超过100行,且提供了实现过程的分步骤代码,适合上手学习。

  • 趣味性强。大部分Python图书案例偏抽象、枯燥乏味,读者不感兴趣;本书精选了15个案例,涵盖了多种互动艺术、创意编程的类型,读者在做出这些趣味程序的过程中,会有很强的成就感。分解了案例的实现过程,每个步骤的学习成本较低,读者很容易就能体验到编程的乐趣,即时反馈提升学习兴趣。

  • 提升可拓展性强。本书所有章节均提供了练习题,加深读者对Python语法知识、开发方法的理解,锻炼逻辑思维,提升认识问题、解决问题的能力。附录中提供了所有练习题的参考答案,每章小结列出了进一步实践的方向。

本书适合任何对计算机编程感兴趣的人,不论是孩子还是家长、学生还是职场人士。

本书适合学习过其他编程语言,想快速学习Python的人。

本书可以作为中学生和大学生学习程序设计的教材、培训机构的参考教材,也可以作为编程爱好者的自学用书。

本书适合对互动艺术、创意编程、Processing开发感兴趣的人,也可以作为中学生、大学生互动艺术课程的学习教材。

每章的开头会介绍该章案例效果、实现的主要思路。读者可以先观看对应的效果视频、运行最终版本的代码,对本章的学习目标有个直观的了解。

创意编程案例会分成多个步骤,从零开始一步一步实现,书中列出了每个步骤的实现目标、实现思路、相应的参考代码。读者可以先在前一个步骤代码的基础上,尝试写出下一个步骤的代码,碰到困难可以参考电子资源中的示例代码、讲解视频。

在语法知识、案例的讲解后会列出一些练习题,读者也可以先自己实践,再参考附录A中给出的答案。每章小结给出的进一步实践方向,读者也可以根据自己的兴趣尝试。

读者可以利用附录B查阅相应的Python语法知识,对于本书没有涉及的内容,读者也可以在线搜索,或者咨询周围的老师、同学。

本书提供了所有案例的分步骤代码、练习题参考答案、图片音效素材、演示视频,读者可以从异步社区下载。

童晶,浙江大学计算机专业博士,河海大学计算机系副教授、硕士生导师,中科院兼职副研究员。主要从事计算机图形学、数字化艺术、虚拟现实、三维打印等方向的研究,发表学术论文30余篇,曾获中国发明创业成果奖一等奖、浙江省自然科学奖二等奖、常州市自然科学优秀科技论文一等奖。

具有15年的一线编程教学经验,被评为河海大学优秀主讲教师。开设课程在校内广受好评,在知乎、网易云课堂、中国大学MOOC等线上平台已有上百万次的阅读量与学习量。

积极投身教学与学生创新,指导学生获得英特尔嵌入式比赛全国一等奖、“挑战杯”全国三等奖、“中国软件杯”全国一等奖、中国大学生服务外包大赛全国一等奖等众多奖项。

首先感谢我的学生们,当老师最有成就感的就是看到学生成长并得到学生的认可。也是你们的支持和鼓励,让我在漫长的写作过程中坚持下来。

感谢人民邮电出版社的陈冀康编辑,本书是在他的一再推动下完成的。

最后感谢我的家人,在这个不平凡的夏天支持我埋头写作。

作者

2020年6月