前 言 Python已经成为最受欢迎的程序设计语言之一。从2004年以来,Python的使用率呈线性增长,截至2020年9月已上升至TIOBE编程语言排行榜第3位。随着其不断应用与发展,Python已成为科学计算、人工智能、Web开发等领域的首选编程语言。目前,学术界、工业界和互联网行业越来越多地使用Python语言,国内外越来越多的大学也已经开始讲授Python语言。 作为一名从事程序设计语言教学和软件开发近20年的老师,编者一直思考在教学中如何让学生从编程语言的细枝末节中解放出来,而专注于逻辑思维能力的锻炼、分析解决问题能力的提高和编程习惯的养成;也一直关注Python语言的发展,思考如何将Python的“优雅”和“简单”的设计哲学融入程序设计语言教学中。 正是基于以上的思考,编者3年前开始构思编写本书。全书始终遵循“从感性到理性”的认知规律,从感性的编程实践着手,让学生在实践中不知不觉地掌握编程基础知识和Python语法;遵循由表及里的渐进式学习规律,不断增强学生的成就感和获得感,在学习过程中不断深入,做到“知其然,知其所以然”,调动学生学习的主动性和能动性、培养学生分析问题与解决问题的编程能力。 “山不辞土,故能成其高;海不辞水,故能成其深”。在程序设计的学习道路上,需要韧性、需要积累,勿喜其易,勿畏其难,愿读者在本书的陪伴下,能一步一个脚印地不断前行。 本书为基础篇,共有8章,各章内容概述如下。 第?1?章:Python语言概述。介绍了Python语言的起源、特点及其应用范围,讲解如何搭建Python语言的开发环境、编写和运行最简单的Python程序,简要阐述Python语言的运行机制。 第?2?章:Python语言基础。介绍Python语言的基础,主要包括:标识符、变量、数据类型、表达式和运算符、程序流程控制、条件语句和循环语句等,完成石头剪刀布、杨辉三角和数据验证等几个应用的编程任务。 第?3?章:函数。系统地讲解为什么需要函数、如何定义和调用函数,介绍函数参数传递的机制、匿名函数、递归函数和常用的内置函数,学习如何使用函数进行模块化的程序设计。 第?4?章:面向对象的程序设计。较为系统地介绍面向对象程序设计的思想及其如何使用面向对象的思想来进行程序设计。 第?5?章:字符串与正则表达式。介绍字符串的基本操作、格式化输出和Python提供的用于处理正则表达式的模块。 第?6?章:列表、元组、字典和集合。介绍列表、元组、字典和集合等数据类型的创建、基本操作及其内置的函数和方法。 第?7?章:异常与文件。介绍异常的概念、异常处理的机制和语法规则,讲解Python对文本文件和二进制文件的读写操作,完成日志文件输出、文件中单词出现次数的统计和成绩分析三个应用的编程任务。 第?8?章:图形用户界面GUI编程。介绍图形用户界面的概念、开发的一般流程和Python主流的GUI图形库,重点讲解wxPython常用的控件、布局管理和事件处理的知识,利用wxPython开发完成一个简易的学生考试成绩分析GUI程序的任务。 本书的主要特色及导读如下。 1. 基础先行、循序渐进 本书主要介绍了Python程序设计的基础知识,强调基础先行,通过实例、应用和项目以循序渐进的方式讲解这些知识体系及其应用。特别是在讲授基础知识和语法时,采用了Python提供的交互式编程环境,这种方式下运行代码实时直观,更容易让学生理解基础知识和语法。 2. 课程网站、不断丰富 为了配合Python的教学,作者以本书为蓝本创建了课程网站,主要有教学视频和PPT课件,读者可以扫描二维码推送到邮箱下载获取教学资源。 3. 微课视频、灵活直观 对于操作性强,难以理解的知识,录制了微课视频,更加灵活直观。 4. 教学博客、透彻深入 从事过程序开发的人员,都对博客情有独钟。为此,编者专门创建了一个用于Python教学和开发的博客网站,其中有对知识点的概括归纳,有对具体知识点透彻深入的分析,有源代码和图片,形式多样,不失为学习Python程序设计的好帮手。 5. 应用举例、学以致用 应用举例是本书一个最大的特点,几乎每章都有,涉及算法和软件开发中的典型应用。 本书可供高等院校计算机类及其他专业的大学生使用,也适合各个层次的Python技术、开发和科研人员阅读和参考。 本书的编写历时3年多的时间,感谢家人和同事帮我做了很多本该我做的事情,让我能安心写作;感谢清华大学出版社的编辑老师,让我这个在软件开发领域默默工作20多年的老兵,想编写一本程序语言书籍的愿望成为现实,特别是在疫情期间的鼓励让我能够坚持完成此书;感谢我的同事余琨老师和学生李天欣、刘鑫、徐华威、陈欢、袁彩钰帮我校稿纠错……所有这些都让编者非常感动,谨通过此书向帮助和鼓励过本书编写的家人、同事、编辑、学生和朋友表达诚挚的谢意! 作者希望能够写出一本能让读者感到满意的书籍,但由于能力所限,书中会存在一些疏漏,恳请读者来信批评指正。 伍孝金