第1章 计算机与编程 1
1.1简介 1
1.2硬件和软件 2
1.2.1硬件 2
1.2.2软件 4
1.3计算机如何存储数据 5
1.3.1存储数字 6
1.3.2存储字符 7
1.3.3高级数字存储 8
1.3.4其他类型的数据 8
1.4程序如何工作 9
1.4.1从机器语言到汇编语言 11
1.4.2高级语言 11
1.4.3关键字、操作符和语法概述 12
1.4.4编译器和解释器 13
1.5使用Python 14
1.5.1安装Python 14
1.5.2 Python解释器 14
1.5.3交互模式 15
1.5.4在脚本模式下编写和运行Python程序 16
1.5.5 IDLE编程环境 16
复习题 17
第2章 输入、处理与输出 20
2.1设计一个程序 20
2.1.1程序开发周期 20
2.1.2设计过程中的更多技术细节 21
2.1.3理解程序将要完成的任务 21
2.1.4决定为完成任务所需采取的步骤 21
2.1.5伪码 22
2.1.6流程图 22
2.2输入、处理与输出 23
2.3用print函数显示输出 24
2.4注释 26
2.5变量 27
2.5.1用赋值语句创建变量 27
2.5.2变量命名规则 29
2.5.3用print函数显示多项内容 30
2.5.4变量再赋值 30
2.5.5数值数据类型和数值文本 31
2.5.6用数据类型str来存储字符串 32
2.6从键盘读取输入 34
2.7执行计算 37
2.7.1浮点数除法与整数除法 39
2.7.2运算符的优先级 39
2.7.3用圆括号将运算分组 40
2.7.4指数运算符 42
2.7.5求余运算符 42
2.7.6将数学公式转换成程序语句 43
2.7.7混合数据类型的表达式与数据类型转换 45
2.7.8长语句拆分 46
2.8关于数据输出的更多介绍 47
2.8.1抑制print函数的换行功能 47
2.8.2指定一个输出项分隔符 47
2.8.3转义字符 48
2.8.4用运算符+来显示多个输出项 49
2.8.5数据格式化 49
2.8.6科学记数法形式的格式化 50
2.8.7插入逗号分隔符 51
2.8.8指定最小域宽 51
2.8.9格式化浮点数为百分数形式 52
2.8.10格式化整数 52
2.9有名常量 53
2.10机器龟图形库简介 54
2.10.1使用机器龟来画线 55
2.10.2机器龟的转向 55
2.10.3将机器龟的朝向设置为特定的角度 57
2.10.4获取机器龟的当前朝向 57
2.10.5画笔的抬起和放下 57
2.10.6绘制圆和点 58
2.10.7修改画笔的宽度 59
2.10.8改变画笔的颜色 59
2.10.9修改背景的颜色 59
2.10.10重新设置屏幕 59
2.10.11指定图形窗口的大小 59
2.10.12移动机器龟到指定的位置 60
2.10.13获取机器龟的当前位置 60
2.10.14控制机器龟的动画速度 61
2.10.15隐藏机器龟 61
2.10.16在图形窗口中显示文本 61
2.10.17图形填充 62
2.10.18用命令turtle.done()来保持图形窗口的开放状态 63
复习题 70
第3章 选择结构与布尔逻辑 76
3.1 if语句 76
3.1.1布尔表达式与关系运算符 77
3.1.2综合应用 79
3.2 if-else语句 82
3.3字符串比较 84
3.4嵌套的选择结构与if-elif-else语句 88
3.4.1测试一组条件 91
3.4.2 if-elif-else语句 93
3.5逻辑运算符 94
3.5.1运算符and 95
3.5.2运算符or 95
3.5.3短路定值 96
3.5.4运算符not 96
3.5.5再次分析判定贷款资格的程序 96
3.5.6又一个判定贷款资格的程序 97
3.5.7用逻辑运算符检查数据范围 98
3.6布尔变量 99
3.7机器龟图形库:判断机器龟的状态 100
3.7.1获取机器龟的位置 100
3.7.2获取机器龟的朝向 100
3.7.3检测画笔是否被放下 101
3.7.4判断机器龟是否可见 101
3.7.5获取当前颜色 101
3.7.6获取画笔的线宽 102
3.7.7获取机器龟的画线速度 102
复习题 107
第4章 循环结构 114
4.1循环结构简介 114
4.2 while循环:条件控制的循环 115
4.2.1 while循环是先测试的循环 117
4.2.2无限循环 119
4.3 for循环:计数控制的循环 120
4.3.1在for循环中使用range函数 122
4.3.2在循环内部使用目标变量 123
4.3.3让用户控制循环迭代 126
4.3.4生成一个取值范围从高到低的迭代序列 127
4.4计算累加和 128
4.5标记 131
4.6验证输入的循环 133
4.7嵌套循环 137
4.8机器龟图形库:用循环语句进行绘图设计 142
复习题 145
第5章 函数 150
5.1函数简介 150
5.1.1使用函数模块化程序的好处 150
5.1.2 void函数和有返回值函数 151
5.2定义和调用void函数 152
5.2.1函数名 152
5.2.2定义和调用函数 152
5.2.3 Python的缩进 155
5.3使用函数设计程序 156
5.3.1使用函数流程图化程序 156
5.3.2自顶向下的设计 157
5.3.3层次图 157
5.3.4暂停执行直到用户按Enter键 160
5.4局部变量 160
5.5向函数传递参数 162
5.5.1参数变量的作用域 164
5.5.2传递多个参数 165
5.5.3改变参数 166
5.5.4关键字参数 168
5.6全局变量和全局常量 169
5.7有返回值的函数简介:生成随机数 172
5.7.1标准库函数和import语句 173
5.7.2产生随机数 173
5.7.3交互模式下的随机数实验 176
5.7.4 randrange、random和uniform函数 179
5.7.5随机数种子 179
5.8自己编写有返回值的函数 181
5.8.1充分利用return语句 182
5.8.2如何使用有返回值的函数 182
5.8.3使用IPO图 184
5.8.4返回字符串 187
5.8.5返回布尔值 188
5.8.6返回多个值 189
5.9 math模块 190
5.10在模块中存储函数 192
5.11机器龟图形库:使用函数模块化代码 195
复习题 200
第6章 文件和异常 208
6.1文件输入和输出简介 208
6.1.1文件类型 209
6.1.2文件访问方法 210
6.1.3文件名和文件对象 210
6.1.4打开文件 211
6.1.5指定文件的位置 211
6.1.6将数据写入文件 212
6.1.7从文件读取数据 213
6.1.8将换行符连接到字符串 215
6.1.9读取字符串并删除其中的换行符 216
6.1.10将数据追加到已有文件 217
6.1.11读写数值数据 218
6.2使用循环处理文件 221
6.2.1使用循环读取文件并检查文件的结尾 221
6.2.2使用Python的for循环读取多行 223
6.3处理记录 227
6.4异常 237
6.4.1处理多个异常 242
6.4.2使用except语句捕获所有异常 243
6.4.3显示异常的默认错误信息 244
6.4.4 else语句 245
6.4.5 finally语句 246
6.4.6如果异常没有被处理怎么办 247
复习题 247
第7章 列表和元组 251
7.1序列 251
7.2列表简介 251
7.2.1重复运算符 252
7.2.2使用for循环在列表上迭代 253
7.2.3索引 253
7.2.4 len函数 254
7.2.5 列表是可变的 254
7.2.6连接列表 256
7.3列表切片 257
7.4使用in操作符在列表中查找元素 259
7.5列表方法和有用的内置函数 261
7.5.1 del语句 265
7.5.2 min和max函数 265
7.6复制列表 266
7.7处理列表 267
7.7.1计算列表中的数值之和 269
7.7.2计算列表中数值的平均值 269
7.7.3将列表作为参数传递给函数 270
7.7.4从函数返回一个列表 271
7.7.5处理列表和文件 274
7.8二维列表 277
7.9元组 280
7.9.1重点是什么 281
7.9.2列表和元组间的转换 282
7.10使用matplotlib包画出列表数据 282
7.10.1导入pyplot模块 283
7.10.2绘制折线图 283
7.10.3绘制条形图 290
7.10.4绘制饼图 293
复习题 296
第8章 深入字符串 302
8.1字符串的基本操作 302
8.1.1访问字符串中的单个字符 302
8.1.2字符串连接 305
8.1.3字符串是不可变的 306
8.2字符串切片 307
8.3测试、搜索和操作字符串 311
8.3.1使用in和not in测试字符串 311
8.3.2字符串方法 311
8.3.3重复操作符 318
8.3.4分割字符串 319
复习题 321
第9章 字典和集合 326
9.1字典 326
9.1.1创建字典 326
9.1.2从字典中检索值 327
9.1.3使用in和not操作符测试字典中的值 327
9.1.4向已有字典中添加元素 328
9.1.5删除元素 329
9.1.6获取字典中元素的数量 329
9.1.7字典中数据类型的混合 330
9.1.8创建空字典 331
9.1.9使用for循环遍历字典 331
9.1.10常用字典方法 332
9.2集合 344
9.2.1创建集合 345
9.2.2获取集合中元素的数量 345
9.2.3添加和删除元素 346
9.2.4使用for循环在集合上迭代 347
9.2.5使用in和not in操作符判断集合中的值 348
9.2.6求集合的并集 348
9.2.7求集合的交集 349
9.2.8求两个集合的差集 349
9.2.9求集合的对称差集 350
9.2.10求子集和超集 350
9.3序列化对象 354
复习题 359
第10章 类与面向对象编程 365
10.1面向过程和面向对象程序设计 365
10.1.1对象可重用性 366
10.1.2一个常见的对象例子 366
10.2类 367
10.2.1类定义 368
10.2.2隐藏属性 373
10.2.3在模块中存储类 375
10.2.4 BankAccount类 376
10.2.5 _str_方法 379
10.3使用实例 381
10.3.1 Accessor和Mutator方法 385
10.3.2传递对象作为参数 388
10.4设计类的技巧 400
10.4.1统一建模语言 400
10.4.2使用类解决问题 400
10.4.3确定一个类的任务 405
10.4.4这仅仅是开始 408
复习题 408
第11章 继承 413
11.1继承简介 413
11.1.1泛化和特殊化 413
11.1.2继承和isa关系 413
11.1.3 UML图中的继承 420
11.2多态 424
复习题 430
第12章 递归 432
12.1递归简介 432
12.2递归求解问题 434
12.2.1使用递归计算阶乘 434
12.2.2直接递归和间接递归 436
12.3递归算法示例 437
12.3.1递归求解列表中元素的和 437
12.3.2斐波那契数列 438
12.3.3求最大公约数 439
12.3.4汉诺塔 440
12.3.5递归与循环 443
复习题 443
第13章 GUI编程 446
13.1 GUI 446
13.2 tkinter模块 447
13.3 Label控件 449
13.4 Frame控件 451
13.5 Button控件和信息对话框 453
13.6使用Entry控件获得输入 456
13.7使用标签显示输出 458
13.8 Radio按钮和Check按钮 464
13.8.1 Radio按钮 464
13.8.2 Radiobutton的回调函数 466
13.8.3 Check按钮 466
13.9使用Canvas组件绘制图形 468
13.9.1 Canvas组件的屏幕坐标系 469
13.9.2绘制直线:create_line方法 470
13.9.3绘制矩形:create_rectangle方法 472
13.9.4绘制椭圆:create_oval方法 473
13.9.5绘制弧:create_arc方法 475
13.9.6绘制多边形:create_polygon方法 478
13.9.7绘制文本:create_text方法 480
复习题 483
附录A Python安装 488
附录B IDLE简介 490
附录C ASCII码表 494
附录D 预定义颜色 495
附录E import语句详解 499
附录F 使用pip工具安装模块 501
附录G 检查点参考答案 502