前 言 Python是一种面向对象的解释型计算机程序设计语言,同时也支持面向过程的编程。具有丰富和强大的标准库及第三方可扩展库,可扩展性非常好。据TIOBE的编程语言排行榜统计,截至2021年8月,Python 已经成为继C语言之后的第二大语言。 Python语言有很多优点: 简单易学、免费开源、高层语言、可移植性强、面向对象、可扩展性、可嵌入型、丰富的库、规范的代码等。因此,在系统编程、图形界面开发、科学计算、文本处理、数据库编程、Web开发、自动运维、多媒体应用、游戏开发、大数据、金融分析、人工智能等方面得到广泛应用。目前,不仅计算机相关专业人员选择使用Python语言快速开发,非计算机专业人员也纷纷选择Python语言帮助自己解决专业问题。 “程序设计基础”是高校普遍开设的一门计算机基础课程,它既面向计算机专业的学生,也面向非计算机专业的学生。该课程的主要目标是通过程序设计语言的学习,使学生掌握一种计算机语言的基本语法和规则,掌握程序设计的基本方法和编程技能,并学会使用该语言通过编程解决一些实际的问题。 本书作者长期从事非计算机专业的“程序设计基础”课程的教学,积累了丰富的教学经验。把多年的教学体验融入本书的编写中,力争做到如下几点。 (1) 对每个知识点提供相关的程序实例,使读者能更直观地理解和掌握Python语言的基本语法和程序设计方法,并逐步提升解决问题的能力。 (2) 每一章后面提供了适量的习题,便于读者检验自己的学习情况,及时发现学习过程中存在的问题并及时解决。 (3) 针对重点和难点知识,给出了大量的分析和注释,力争把重点和难点讲透讲懂,并给出应用实例。 本书共分为9章,各章节内容如下。 第1章的主要内容有计算机工作原理简介,程序和程序设计语言的概念及分类,程序的执行方式;Python语言的概述,Python开发工具IDLE的下载、安装、运行;通过几个简单的例子学习,使读者掌握Python语言的基本语法规则;Python中模块的概念,模块的下载、安装、导入以及math和random模块的使用。 第2章的主要内容有基本数据类型常量的表示形式,变量的定义;各种运算符的功能、优先级和结合性,表达式的书写规范;最后对常用的内置函数进行讲解。 第3章的主要内容有算法的概念,算法的表示方法,如传统的流程图、NS流程图等;选择结构程序设计,如双分支、单分支、多分支和嵌套的if语句等;循环结构程序设计,如while和for循环语句、break和continue循环跳转语句以及else语句;多重循环结构程序的设计;异常处理的概念及分类、异常处理控制语句try语句的各种类型。 第4章的主要内容有组合数据类型的概念及分类;列表的创建、访问、切片以及列表的运算和操作函数、方法等;元组的创建、访问、切片以及元组的运算和操作函数及方法;集合的创建、访问以及集合的运算和操作函数及方法;字典的创建、访问和操作函数及方法等。 第5章的主要内容有函数的概念、定义、调用、返回值;函数的参数传递,位置参数、关键字参数、默认值参数、可变长参数;变量的作用域即全局变量、局部变量和非局部变量;lambda函数的定义和使用。 第6章的主要内容有字符串的创建、访问、切片以及字符串的运算和操作函数及方法;正则表达式的模式设计、正则表达式的常用函数等。 第7章的主要内容有文件的基本处理;数据维度的概念、表示、处理及文件管理等。 第8章的主要内容有面向对象的概念及与面向过程的区别;类的定义,实例对象的创建;对象属性和对象方法的使用;继承与多态的概念;方法重载等。 第9章的主要内容有与科学计算和数据可视化相关的numpy、pandas和matplotlib三个扩展库的介绍和使用。 本书由江西师范大学计算机信息工程学院的任课教师编写,具体分工如下: 傅清平老师负责第1、2、4章、第3章的3.3节和3.4节以及附录A的编写;李雪斌老师负责第3章的3.1节和3.2节及第7~9章的编写;徐文胜老师负责第5、6章的编写。全书由傅清平老师统稿和定稿。 本书在编写和出版过程中得到了许多人的帮助,包括领导的支持和关心、同事的意见和建议及家人的理解和支持。清华大学出版社的领导和编校人员为本书的出版提供了无私的帮助,在此一并表示真诚的感谢! 本书在编写过程中,参考了大量的书籍和资料,在此谨向这些文献资料的作者表示衷心的感谢! 由于作者的时间和水平有限,书中难免存在疏漏和不足之处,恳请广大读者批评指正。 编者2021年8月