图书目录

第1 章 计算机和编程概述    1

1.1 概述       1

1.2 硬件和软件     2

1.2.1 硬件          2

1.2.2 中央处理器          3

1.2.3 主存          3

1.2.4 辅助存储设备      4

1.2.5 输入设备        5

1.2.6 输出设备        5

1.2.7 软件          5

检查点          6

1.3 计算机如何存储数据      6

1.3.1 存储数字        7

1.3.2 存储字符        8

1.3.3 高级数字存储      9

1.3.4 其他类型的数据         9

检查点        10

1.4 程序如何工作     10

1.4.1 从机器语言到汇编语言   12

1.4.2 高级语言      13

1.4.3 关键字、操作符和语法:概述     14

1.4.4 编译器和解释器       15

检查点        17

1.5 使用Python         17

1.5.1 安装Python        17

1.5.2 Python 解释器       17

1.5.3 IDLE 编程环境         20

复习题       21

第2 章 输入、处理和输出       25

2.1 设计程序       25

2.1.1 程序开发周期       25

2.1.2 关于设计过程的更多说明     26

2.1.3 伪代码          27

2.1.4 流程图          28

检查点        28

2.2 输入、处理和输出        28

2.3 用print 函数显示输出       29

检查点        31

2.4 注释         31

2.5 变量         32

2.5.1 用赋值语句创建变量       33

2.5.2 多重赋值      35

2.5.3 变量命名规则       35

2.5.4 用print 函数显示多项内容   37

2.5.5 变量重新赋值       37

2.5.6 数值数据类型和字面值   38

2.5.7 用str 数据类型存储字符串   39

2.5.8 让变量引用不同数据类型     40

检查点        40

2.6 从键盘读取输入        41

检查点        44

2.7 执行计算       45

2.7.1 浮点和整数除法       47

2.7.2 操作符优先级       48

2.7.3 用圆括号分组       49

2.7.4 求幂操作符        50

2.7.5 求余操作符        51

2.7.6 将数学公式转换为编程语句       52

2.7.7 混合类型的表达式和数据类型转换      54

2.7.8 将长语句拆分为多行       55

检查点        56

2.8 字符串连接         56

检查点        57

2.9 print 函数进阶知识        58

2.9.1 阻止print 函数的换行功能   58

2.9.2 指定分隔符        58

2.9.3 转义序列      59

检查点        60

2.10 用f 字符串格式化输出         60

2.10.1 占位符表达式         61

2.10.2 格式化值          61

2.10.3 浮点数四舍五入     62

2.10.4 插入逗号分隔符     63

2.10.5 将浮点数格式化为百分比   64

2.10.6 用科学计数法格式化     64

2.10.7 格式化整数      64

2.10.8 指定最小域宽         65

2.10.9 值的对齐          66

2.10.10 指示符的顺序       68

2.10.11 连接f 字符串        68

检查点        69

2.11 具名常量      70

检查点        71

2.12 海龟图形概述          71

2.12.1 使用海龟图形来画线     71

2.12.2 海龟转向          72

2.12.3 使海龟朝向指定角度     74

2.12.4 获取海龟的当前朝向     75

2.12.5 画笔抬起和放下     75

2.12.6 画圆和画点      76

2.12.7 更改画笔大小         76

2.12.8 更改画笔颜色         77

2.12.9 更改背景颜色         77

2.12.10 重置屏幕        77

2.12.11 指定图形窗口的大小   77

2.12.12 获取海龟的当前位置   78

2.12.13 控制海龟动画的速度   78

2.12.14 隐藏海龟        79

2.12.15 将海龟移到指定位置   79

2.12.16 在图形窗口中显示文本     80

2.12.17 填充形状        81

2.12.18 从对话框获取输入       83

2.12.19 使用turtle.textinput 命令获取字符串输入          85

2.12.20 使用turtle.done() 使图形窗口保持打开状态        86

检查点        93

复习题       94

编程练习          97

第3 章 判断结构和布尔逻辑      101

3.1 if 语句          101

3.1.1 布尔表达式和关系操作符   102

3.1.2 操作符>= 和<=     104

3.1.3 操作符==        104

3.1.4 操作符!=         105

3.1.5 综合运用          105

3.1.6 单行if 语句      107

检查点      108

3.2 if-else 语句        108

检查点      111

3.3 比较字符串        111

检查点      114

3.4 嵌套判断结构和if-elif-else 语句     115

3.4.1 测试一系列条件     118

3.4.2 if-elif-else 语句       120

检查点      121

3.5 逻辑操作符        122

3.5.1 操作符and       122

3.5.2 操作符or          123

3.5.3 短路求值          123

3.5.4 操作符not        123

3.5.5 修订贷款资格判断程序       124

3.5.6 另一个贷款资格判断程序   125

3.5.7 用逻辑操作符检查数字范围     126

检查点      127

3.6 布尔变量     128

检查点      128

3.7 条件表达式        128

3.8 赋值表达式和海象操作符     130

3.9 海龟图形:判断海龟的状态       131

3.9.1 判断海龟位置         132

3.9.2 判断海龟朝向         132

3.9.3 判断笔是否放下     132

3.9.4 判断海龟是否可见     133

3.9.5 判断当前颜色         133

3.9.6 判断画笔大小         134

3.9.7 判断海龟的动画速度     134

检查点      138

复习题     139

编程练习        141

第4 章 循环结构        147

4.1 循环结构简介          147

检查点      148

4.2 while 循环:条件控制循环         148

4.2.1 while 循环是预测试循环     152

4.2.2 无限循环          153

4.2.3 while 循环用作计数控制循环   154

4.2.4 单行while 循环      157

检查点      158

4.3 for 循环:计数控制循环       158

4.3.1 为for 循环使用range 函数       160

4.3.2 在循环内使用目标变量       162

4.3.3 让用户控制循环迭代     165

4.3.4 生成降序可迭代序列     167

检查点      167

4.4 计算累加和       168

检查点      171

4.5 哨兵值         171

检查点      173

4.6 输入校验循环          173

检查点      177

4.7 嵌套循环     178

4.8 循环语句break,continue 和else      184

4.8.1 break 语句        184

4.8.2 continue 语句          186

4.8.3 在循环中使用else 子句       187

4.9 海龟图形:用循环来画图    188

复习题     192

编程练习        193

第5 章 函数          197

5.1 函数简介     197

5.1.1 用函数将程序模块化的好处     198

5.1.2 void 函数和返回值的函数   199

检查点      199

5.2 定义和调用void 函数     199

5.2.1 函数名        199

5.2 2 定义和调用函数     200

5.2.3 调用函数          200

5.2.4 Python 的缩进         203

检查点      203

5.3 使用函数来设计程序       204

5.3.1 使用了函数的程序的流程图     204

5.3.2 自上而下设计         204

5.3.3 层次结构图      205

5.3.4 暂停执行直到用户按Enter 键     208

5.3.5 使用pass 关键字        208

5.4 局部变量     209

检查点      211

5.5 向函数传递实参       211

5.5.1 形参变量的作用域     213

5.5.2 传递多个实参         214

5.5.3 修改形参          216

5.5.4 关键字参数      217

5.5.5 混合使用关键字实参和位置实参    219

5.5.6 仅关键字参数         219

5.5.7 仅位置参数      220

5.5.8 默认实参          220

检查点      223

5.6 全局变量和全局常量       224

检查点      227

5.7 返回值的函数:生成随机数       227

5.7.1 标准库函数和import 语句        227

5.7.2 生成随机数      228

5.7.3 从f 字符串中调用函数        231

5.7.4 在交互模式下尝试使用随机数        231

5.7.5 函数randrange、random 和uniform    234

5.7.6 随机数种子      235

检查点      236

5.8 自定义返回值的函数       236

5.8.1 更高效地利用return 语句   238

5.8.2 使用返回值的函数     239

5.8.3 使用IPO 图      240

5.8.4 返回字符串      245

5.8.5 返回布尔值      245

5.8.6 在校验代码中使用布尔函数     246

5.8.7 返回多个值      247

5.8.8 从函数返回None       247

检查点      249

5.9 math 模块           249

检查点      251

5.10 将函数存储到模块中    252

5.11 海龟图形:使用函数将代码模块化    257

复习题     264

编程练习        267

第6 章 文件和异常        273

6.1 文件输入和输出简介      273

6.1.1 文件类型          275

6.1.2 文件访问方法         275

6.1.3 文件名和文件对象     275

6.1.4 打开文件          276

6.1.5 指定文件位置         277

6.1.6 向文件写入数据     277

6.1.7 从文件读取数据     279

6.1.8 将换行符连接到字符串       282

6.1.9 读取字符串并去掉换行符   283

6.1.10 向现有文件追加数据   284

6.1.11 写入和读取数值数据   285

检查点      288

6.2 使用循环来处理文件      288

6.2.1 使用循环读取文件并检测文件尾    289

6.2.2 使用for 循环读取行      291

检查点      295

6.3 使用with 语句打开文件       295

6.3.1 资源      295

6.3.2 with 语句          295

6.3.3 用with 语句打开多个文件        297

6.3 处理记录     298

检查点      309

6.4 异常       309

6.4.1 处理多个异常         315

6.4.2 用一个except 子句捕获所有异常    316

6.4.3 显示异常的默认错误消息   317

6.4.4 else 子句     318

6.4.5 finally 子句       320

6.4.6 如果异常未被处理怎么办   320

检查点      320

复习题     321

编程练习        323

第7 章 列表和元组        325

7.1 序列       325

7.2 列表简介           325

7.2.1 重复操作符     326

7.2.2 使用 for 循环遍历列表       327

7.2.3 索引     328

7.2.4 len 函数      329

7.2.5 使用for 循环按索引来遍历列表    329

7.2.6 列表是可变的        330

7.2.7 连接列表         332

检查点      333

7.3 列表切片     334

检查点      336

7.4 使用操作符in 查找列表项        336

检查点      337

7.5 列表方法和有用的内置函数      338

7.5.1 append 方法       338

7.5.2 count 方法       340

7.5.3 index 方法       340

7.5.4 insert 方法       341

7.5.5 sort 方法          342

7.5.6 remove 方法       343

7.5.7 reverse 方法       344

7.5.8 del 语句     344

7.5.9 sum 函数         344

7.5.10 函数min 和max       345

检查点      345

7.6 复制列表     345

7.7 处理列表           347

7.7.1 累加列表中的数值        348

7.7.2 计算列表中数值的平均值        349

7.7.3 将列表作为实参传给函数        350

7.7.4 从函数中返回列表        351

7.7.5 随机选择列表元素        355

7.7.6 处理列表和文件        356

7.8 列表推导式       358

检查点      361

7.9 二维列表           361

检查点      364

7.10 元组           365

7.10.1 将不同的元组赋给变量    366

7.10.2 在元组中存储可变对象    367

7.10.3 有什么意义       368

7.10.4 在列表和元组之间转换    368

检查点      369

7.11 使用matplotlib 包绘制列表数据    369

7.11.1 导入pyplot 模块       369

7.11.2 绘制折线图          370

7.11.3 添加标题、轴标签和网格      371

7.11.4 自定义X 轴和Y 轴    372

7.11.5 在数据点上显示标记        376

7.11.6 绘制柱状图          378

7.11.7 自定义条柱宽度      379

7.11.8 更改条柱颜色      380

7.11.9 添加标题、坐标轴标签和自定义

刻度线标签          381

7.11.10 绘制饼图     382

7.11.11 显示切片标签和标题      383

7.11.12 改变切片颜色        384

检查点      384

复习题     385

编程练习        388

第8 章 深入字符串        393

8.1 基本字符串操作      393

8.1.1 访问字符串中的单个字符        393

8.1.2 使用for 循环遍历字符串    393

8.1.3 索引      396

8.1.4 IndexError 异常     396

8.1.5 len 函数      397

8.1.6 字符串连接      397

8.1.7 字符串是不可变的     398

检查点      399

8.2 字符串切片       400

检查点      403

8.3 测试、查找和操作字符串    403

8.3.1 使用操作符in 和not in 测试字符串   403

8.3.2 字符串方法     404

8.3.3 字符串测试方法        404

8.3.4 修改方法         406

8.3.5 查找和替换     408

8.3.6 重复操作符      412

检查点      418

复习题     420

编程练习        422

第9 章 字典和集合        427

9.1 字典       427

9.1.1 创建字典          427

9.1.2 从字典中检索值     428

9.1.3 使用操作符in 和not in 来判断键是否存在      429

9.1.4 向现有字典添加元素     429

9.1.5 删除元素          430

9.1.6 获取字典中的元素个数       431

9.1.7 在字典中混合不同的数据类型        431

9.1.8 创建空字典      432

9.1.9 使用for 循环遍历字典        433

9.1.10 一些字典方法       434

9.1.11 字典合并和更新操作符     448

9.1.12 字典推导式       449

9.1.13 在字典推导式中使用if 子句   451

检查点      452

9.2 集合       453

9.2.1 创建集合          453

9.2.2 获取集合中的元素数量       454

9.2.3 添加和删除元素     454

9.2.4 使用for 循环来遍历集合    456

9.2.5 使用操作符in 和not in 测试集合中的值 457

9.2.6 并集      457

9.2.7 交集      458

9.2.8 差集      458

9.2.9 对称差集          459

9.2.10 子集和超集       460

9.2.11 集合推导式       463

检查点      463

9.3 对象序列化       465

检查点      470

复习题     471

编程练习        475

第10 章 类和面向对象编程   479

10.1 过程式编程和面向对象编程    479

10.1.1 对象的可重用性       480

10.1.2 日常生活中的对象       480

检查点      481

10.2 类         482

10.2.1 类定义      483

10.2.2 隐藏属性        488

10.2.3 将类存储到模块中       491

10.2.4 BankAccount 类        493

10.2.5 __str__ 方法          495

检查点      498

10.3 操作类的实例        498

10.3.1 取值和赋值方法       503

10.3.2 将对象作为参数传递   506

检查点      519

10.4 类的设计技术        519

10.4.1 统一建模语言(UML)        519

10.4.2 确定解决问题所需的类     520

10.4.3 这只是开始       529

检查点      529

复习题     530

编程练习        532

第11 章 继承        537

11.1 继承简介          537

11.1.1 泛化和特化       537

11.1.2 继承和“属于”关系   537

11.1.3 在UML 图中表示继承      545

检查点      550

11.2 多态性        550

检查点      556

复习题     557

编程练习        558

第12 章 递归       559

12.1 递归简介         559

12.2 用递归解决问题        561

12.2.1 使用递归来计算阶乘   562

检查点      565

12.3 递归算法示例          565

12.3.1 用递归对列表元素的一个范围进行求和          565

12.3.2 斐波那契数列       566

12.3.3 寻找最大公约数       567

12.3.4 汉诺塔      568

12.3.5 递归与循环       571

复习题     572

编程练习        574

第13 章 GUI 编程      575

13.1 图形用户界面        575

检查点      576

13.2 使用tkinter 模块        577

检查点      580

13.3 使用Label 控件显示文本         580

13.3.1 为标签添加边框       582

13.3.2 填充          583

检查点      587

13.4 使用Frame 来组织控件      588

13.5 Button 控件和消息框     590

13.6 用Entry 控件获取输入        593

13.7 将标签用作输出字段    596

检查点      602

13.8 单选钮和复选框        602

13.8.1 单选钮      602

13.8.2 为Radiobutton 指定回调函数        605

检查点      608

13.9 Listbox 控件           608

13.9.1 指定列表框大小       609

13.9.2 使用循环来填充列表框     609

13.9.3 在列表框中选择项       610

13.9.4 获取选中的一项或多项     611

13.9.5 从列表框中删除项       613

13.9.6 当用户单击列表项时执行回调函数      613

13.9.7 为列表框添加滚动条   617

检查点      625

13.10 使用Canvas 控件绘制图形     625

13.10.1 Canvas 控件的屏幕坐标系    626

13.10.2 画线:create_line 方法    627

13.10.3 画矩形:create_rectangle 方法     629

13.10.4 画椭圆:create_oval 方法      631

13.10.5 画弧线:create_arc 弧形方法       633

13.10.6 画多边形:create_polygon 方法      637

13.10.7 绘制文本:create_text 方法  638

检查点      643

复习题     644

编程练习        646

第14 章 数据库编程      649

14.1 数据库管理系统        649

14.1.1 SQL          650

14.1.2 SQLite      650

检查点      650

14.2 表、行和列     650

14.2.1 列数据类型       651

14.2.2 主键          652

14.2.3 标识列      653

14.2.4 允许空值        653

检查点      654

14.3 使用SQLite 打开和关闭数据库连接      654

14.3.1 指定数据库在磁盘上的位置   656

14.3.2 向DBMS 传递SQL 语句        656

检查点      656

14.4 创建和删除表        657

14.4.1 创建表      657

14.4.2 创建多个表          659

14.4.3 仅在表不存在时创建表     660

14.4.4 删除表      660

检查点      661

14.5 向表中添加数据        661

14.5.1 用一个INSERT 语句插入多行      663

14.5.2 插入NULL 数据      664

14.5.3 插入变量值       664

14.5.4 警惕SQL 注入攻击     666

检查点      667

14.6 使用SQL SELECT 语句查询数据      667

14.6.1 示例数据库       667

14.6.2 SELECT 语句       668

14.6.3 选择表中的所有列       672

14.6.4 使用WHERE 子句指定搜索条件      673

14.6.5 SQL 逻辑操作符:AND,OR 和NOT 676

14.6.6 SELECT 语句中的字符串比较      676

14.6.7 使用LIKE 操作符        677

14.6.8 对SELECT 查询的结果排序     678

14.6.9 聚合函数        679

检查点      682

14.7 更新和删除现有行         682

14.7.1 更新行      682

14.7.2 更新多列        685

14.7.3 确定更新的行数       685

14.7.4 使用DELETE 语句删除行      686

14.7.5 确定删除的行数       688

检查点      688

14.8 深入主键          688

14.8.1 SQLite 中的RowID 列       689

14.8.2 SQLite 中的整数主键        689

14.8.3 非整数主键       690

14.8.4 复合键      690

检查点      691

14.9 处理数据库异常         692

检查点      694

14.10 CRUD 操作          694

14.11 关系数据库     702

14.11.1 外键        704

14.11.2 实体关系图(ERD)     704

14.11.3 用SQL 创建外键        705

14.11.4 在SQLite 中强制外键约束    706

14.11.5 更新关系数据     709

14.11.6 删除关系数据     709

14.11.7 在SELECT 语句中从多个表检索列     710

检查点      716

复习题     717

编程练习        720

附录A 安装Python     723

附录B IDLE 简介        725

附录C ASCII 字符集       729

附录D 预定义颜色名称    731

附录E import 语句        737

附录F 用format() 函数格式化输出      741

附录G 用pip 工具安装模块        747

附录H 知识检查点答案    749

术语详解          767