新書推薦:
《
乾隆制造
》
售價:HK$
87.4
《
资治通鉴臣光曰辑存 资治通鉴目录(司马光全集)(全二册)
》
售價:HK$
304.4
《
明代社会变迁时期生活质量研究
》
售價:HK$
316.2
《
律令国家与隋唐文明
》
售價:HK$
76.7
《
现代吴语的研究(中华现代学术名著3)
》
售價:HK$
65.0
《
天下的当代性:世界秩序的实践与想象(新版)
》
售價:HK$
77.3
《
德国天才4:断裂与承续
》
售價:HK$
109.8
《
妈妈的情绪,决定孩子的未来
》
售價:HK$
42.6
|
編輯推薦: |
l 本书用三步法讲解计算机程序设计,重在培养初学者的计算思维能力和习惯,便于初学者理解程序设计的思想方法。
l 本书内容覆盖计算机程序设计基本知识,内容丰富,循序渐进,既有浅显易懂的例题习题,也有比较有趣的程序练习。
l 提供讲解视频,在线测评练习,便于自学。
|
內容簡介: |
本书利用 Python 程序设计语言介绍程序设计基础知识。全书共 9 章。第 1 章介绍算法和数据的概念以 及算法的伪代码表示。第 2 章介绍 Python 的常用数据类型。第 3 章介绍 Python 的程序结构和各种语句。第 4 章介绍自定义函数。第 5 章介绍程序的调试与测试。第 6 章介绍递归函数。第 7 章介绍文件和异常处理。第 8 章介绍算法的性能。第 9 章介绍常用数据处理包。 本书面向程序设计初学者,可作为大中专院校非计算机专业程序设计入门课程教材,也可作为程序设计爱 好者的自学教材。
|
關於作者: |
乔海燕,中山大学计算机学院副教授,常年讲授程序设计课程。曾参与编写《数据结构与算法实验实践教程》(清华出版社2012年);参与翻译《Python3.6编程实践指南(计算机科学入门)》(2019出版)。
|
目錄:
|
第1章 程序设计的概念 1
1.1 计算机程序设计基本概念 1
1.1.1 计算机程序和程序设计语言 1
1.1.2 算法的概念 1
1.1.3 算法的伪代码和算法设计 4
1.1.4 伪代码格式 5
1.1.5 程序设计三步法 10
1.2 Python语言 12
1.2.1 Python是什么 12
1.2.2 使用Python解释器 12
1.3 数据、数据类型和表达式 14
1.3.1 数据和数据类型 14
1.3.2 标识符、变量和表达式 17
1.3.3 命令或语句 18
1.3.4 一个简单程序 19
1.3.5 在IDLE下运行程序 20
1.3.6 在命令提示符窗口运行程序 21
1.4 turtle作图 22
1.4.1 turtle的使用 22
1.4.2 如何运行一个turtle程序 23
1.4.3 turtle命令 24
1.4.4 一个turtle绘图程序 26
习题 26
第2章 数据处理基础 28
2.1 数据类型、对象和方法 28
2.2 数据类型bool 29
2.2.1 bool类型上的运算 29
2.2.2 运算结果是布尔值的运算 30
2.2.3 其他可用于条件测试的值 31
2.3 数值类型int、float和complex 32
2.3.1 整数类型int 32
2.3.2 浮点数类型float 33
2.3.3 复数类型complex 33
2.3.4 数值类型之间的转换 34
2.3.5 使用数学常数和函数 34
2.3.6 生成随机数 34
2.4 字符序列类型:字符串 35
2.4.1 构造字符串 35
2.4.2 测试相等和子串 36
2.4.3 字符串的索引运算 36
2.4.4 存取子串的取段方法 37
2.4.5 遍历字符串和循环语句 38
2.4.6 字符串先后次序比较 40
2.4.7 字符串的其他常用方法 40
2.5 序列类型:多元组和列表 41
2.5.1 多元组 41
2.5.2 列表 42
2.5.3 列表的基本操作 43
2.5.4 列表的遍历和for循环语句 46
2.5.5 获取子列表的取段运算 46
2.5.6 多元组和列表 47
2.5.7 序列 48
2.5.8 列表概括法 49
2.5.9 可变对象和不可变对象 49
2.6 数据类型选择示例——电话号码查询算法 51
2.6.1 需求分析 52
2.6.2 数据结构设计 52
2.6.3 算法设计 52
2.7 映射类型:字典 53
2.7.1 字典的构造 54
2.7.2 查看关键字的值 54
2.7.3 给字典添加元素 55
2.7.4 从字典中删除元素 55
2.7.5 在字典中遍历 56
习题 57
第3章 程序结构 60
3.1 顺序结构 60
3.1.1 简单赋值语句 60
3.1.2 可变对象与别名 62
3.1.3 复合赋值 62
3.1.4 并行赋值 63
3.1.5 输入和输出语句 63
3.1.6 表达式语句 65
3.2 分支结构 65
3.2.1 if语句 65
3.2.2 if-else语句 66
3.2.3 if-elif-else语句 66
3.3 循环结构 68
3.3.1 for循环语句 68
3.3.2 while循环语句 70
3.3.3 循环的控制:break和continue 74
3.3.4 循环嵌套 77
习题 78
第4章 函数 83
4.1 函数的概念 83
4.1.1 什么是函数 83
4.1.2 内置函数 85
4.1.3 数学函数 86
4.1.4 用 ??表达式表示简单函数 86
4.1.5 排序函数 87
4.2 自定义函数和函数抽象 89
4.2.1 函数的定义 89
4.2.2 函数的调用 89
4.2.3 函数抽象 90
4.3 函数的参数和返回值 91
4.3.1 函数的返回值 91
4.3.2 参数的默认值 93
4.3.3 定位实参和关键字实参 94
4.3.4 参数的传递 94
4.4 变量的作用域 95
4.4.1 局部变量和全局变量 95
4.4.2 使用全局变量 97
4.4.3 跟踪函数调用运行过程 97
4.5 模拟计算 99
4.5.1 模拟抛骰子 99
4.5.2 用蒙特卡洛方法估算 ? 的近似值 100
4.5.3 模拟猜拳游戏 102
4.6 编写没有副作用的函数 103
4.6.1 副作用和纯函数 103
4.6.2 设计纯函数 105
4.6.3 无副作用的选择排序 105
4.6.4 有副作用的选择排序 106
4.7 模块 108
4.7.1 模块的作用与用法 108
4.7.2 主模块和变量__name__的用法 108
习题 110
第5章 调试与测试 112
5.1 调试 112
5.1.1 语法错误 112
5.1.2 语义错误 112
5.1.3 调试基本技术 113
5.2 测试 117
5.2.1 程序的规格说明 118
5.2.2 人工测试 118
5.2.3 自动测试 119
习题 120
第6章 递归函数 122
6.1 递归函数的概念 122
6.1.1 阶乘和幂函数的递归定义 122
6.1.2 列表上的递归 124
6.1.3 字符串上的递归 124
6.1.4 汉诺塔 125
6.2 递归和迭代 127
6.2.1 斐波那契数列的递归定义 127
6.2.2 斐波那契数列的迭代定义 128
6.3 查找与排序 128
6.3.1 二分查找 129
6.3.2 归并排序 130
6.3.3 插入排序 132
习题 134
第7章 文件和异常处理 136
7.1 文件读写 136
7.1.1 打开文件 136
7.1.2 读文件 137
7.1.3 写文件 138
7.1.4 关闭文件和with语句 138
7.1.5 文件操作例子 139
7.1.6 使用json读写对象 140
7.2 异常和异常处理 141
7.2.1 异常 141
7.2.2 处理异常 142
7.2.3 处理文件异常 144
习题 145
第8章 算法的性能 146
8.1 算法的复杂度 146
8.1.1 时间复杂度的概念 146
8.1.2 大O 表示法 148
8.1.3 递归算法的时间复杂度 150
8.1.4 算法的空间复杂度 151
8.2 Python数据结构操作的时间复杂度 151
8.2.1 列表操作的时间复杂度 151
8.2.2 字典操作的时间复杂度 152
8.3 Python程序复杂度 153
8.3.1 插入排序 153
8.3.2 函数式插入排序 154
8.3.3 原地插入排序 156
习题 157
第9章 常用数据处理包 159
9.1 包的安装和使用 159
9.1.1 什么是包 159
9.1.2 包的安装 159
9.2 NumPy 160
9.2.1 安装和导入 160
9.2.2 数组的运算 160
9.2.3 二维NumPy数组 161
9.2.4 解线性方程组 162
9.3 Pyplot 163
9.3.1 安装和导入 163
9.3.2 使用Pyplot作图 163
9.3.3 添加说明信息 164
9.4 Pandas 165
9.4.1 安装Pandas 165
9.4.2 将数据读入DataFrame 165
9.4.3 存取数据框的行和列 166
9.4.4 在数据框中添加数据 169
9.4.5 将数据框输出到文件 170
附录A Python常用参考网页 171
附录B Python代码规范 172
B.1 命名 172
B.2 代码布局 172
B.3 表达式和语句中的空格 172
B.4 注释 173
参考文献 174
|
內容試閱:
|
初学程序设计的人往往会觉得学习程序设计具有一定的挑战性,部分原因可能在于学习程序设计的方法不得当。做任何事都有一定的方法,如果遵循一定的方法,事情做起来就容易得多,否则会增加完成任务的困难,或者根本进行不下去。学习编写程序也一样。
编写程序是要让计算机帮助人们完成一定的任务。进行程序设计需要遵循一定的步骤:首先,确定解决一个特定计算任务的思想方法;其次,确定如何将这种方法分解为一系列执行步骤,也就是设计算法;后,用某种程序设计语言将算法转换成计算机能够执行的代码,即编码。我们不妨把这种程序设计方法称为三步法,其中前两步关键,后一步相对简单。因此,作者认为,学习程序设计应该把重点放在如何描述解决问题的方法上,特别是用算法的形式表述出来,而不是放在程序设计语言上。
著名计算机科学家沃斯曾提出:“算法 数据结构=程序”。算法的功能是将输入数据转化为输出数据。设计算法时首先需要明确输入数据和输出数据各是什么以及如何表示,然后设计实现输入数据到输出数据转换的一系列步骤。所以,结合程序设计语言,熟悉各种数据的表示和基本操作,掌握数据的组织方法,对于设计算法也尤为重要。在此基础上,初学者如能遵循三步法,编写程序便不难了。
本书的特点在于采用三步法讲解程序设计,关注重点在数据结构和算法,掌握了这两者,便基本掌握了程序设计。
近几年来,Python凭借简单易学以及使用广泛的特点成为许多高校非计算机专业程序设计入门课程的语言。为此,本书选择利用Python程序设计语言介绍程序设计,全书涵盖了程序设计基本知识。第1章介绍算法和数据的概念以及算法的伪代码表示;第2章介绍Python提供的常用数据类型,包括特定类型数据的表示和基本操作;第3章介绍Python的程序结构和各种语句;第4章介绍自定义函数;第5章介绍程序的调试与测试;第6章介绍递归函数;第7章介绍文件和异常处理;第8章介绍算法的性能;第9章介绍常用数据处理包。
本书讲解计算机程序设计的入门内容,面向初学者,不需要读者具有程序设计基础。本书可作为大中专院校非计算机专业程序设计入门课程教材,也可作为程序设计爱好者的自学教材。
作者在编写本书的过程中得到了清华大学出版社白立军老师的大力协助,在此表示感谢!杨永红老师以及韦媛馨、张钺奇和周宇三位同学阅读了书稿,给出了很好的修改建议,在此一并表示感谢!
限于作者的水平,书中可能有错误和疏漏,敬请读者不吝指正。
作 者
2021年4月于中山大学东校园
|
|