think python Python思维——原始中英目录
think python Python思维
1 The way of the p rogram编程的方法
1.1 The Python programming language Python编程语言
interpreters 解释器
interactive
prompt
script mode
script
compilers
1.2 What is a program? 什么是程序?
1.3 What is debugging? 什么是调试?
1.4 Formal and natural languages形式语言和自然语言
1.5 The first program第一个程序
1.6 Debugging调试
1.7 Glossary术语表
1.8 Exercises
2 Variables, expressions and statements 变量、表达式和语句
2.1 Values and types值和类型
2.2 Variables变量
2.3 Variable names and keywords变量名和关键字
2.4 Operators and operands运算符和运算数
2.5 Expressions and statements表达式和语句
2.6 Interactive mode and script mode交互模式和脚本模式
2.7 Order of operations运算的顺序
2.8 String operations字符串运算
2.9 Comments 注释
2.10 Debugging调试
2.11 Glossary术语表
2.12 Exercises
3 Functions 函数27
3.1 Function calls函数调用
3.2 Type conversion functions类型转换函数
3.3 Math functions数学函数
3.4 Composition组合
3.5 Adding new functions增加新函数
3.6 Definitions and uses 定义和使用
3.7 Flow of execution执行流程
3.8 Parameters and arguments形参和实参.
3.9 Variables and parameters are local变量和形参都是局部的
3.10 Stack diagrams栈图
3.11 Fruitful functions and void functions有返回值函数和无返回值函数
3.12 Why functions? 为什么用函数?
3.13 Importing with from使用from导入
3.14 Debugging调试
3.15 Glossary术语表
3.16 Exercises
4 Case study: interface design 案例学习:接口设计
4.1 TurtleWorld
4.2 Simple repetition简单的重复
4.3 Exercises练习
4.4 Encapsulation封装
4.5 Generalization泛化
4.6 Interface design接口设计
4.7 Refactoring重构
4.8 A development plan开发方案
4.9 docstring文档字符串
4.10 Debugging调试
4.11 Glossary术语表
instance 实例
loop 循环
encapsulation 封装
generalization 泛化
keyword argument 关键字实参
interface 接口
refactoring 重构
development plan 开发方案
docstring文档字符串
precondition 先决条件
postcondition 后置条件
4.12 Exercises
Contents xv
5 Conditionals and recursion 条件和递归
5.1 Modulus operator求余运算符
5.2 Boolean expressions布尔表达式
5.3 Logical operators逻辑运算符
5.4 Conditional execution有条件的执行
5.5 Alternative execution二选一执行
5.6 Chained conditionals链式条件
5.7 Nested conditionals嵌套条件
5.8 Recursion递归
5.9 Stack diagrams for recursive functions递归函数栈图
5.10 Infinite recursion无限递归
5.11 Keyboard input键盘输入
5.12 Debugging调试
5.13 Glossary 术语表
5.14 Exercises
6 Fruitful functions 有返回值的函数
6.1 Return values返回值
6.2 Incremental development增量式开发
6.3 Composition组合
6.4 Boolean functions布尔函数
6.5 More recursion更多的递归
6.6 Leap of faith 信心的飞跃
6.7 One more example一个更多的例子
6.8 Checking types检查类型
6.9 Debugging调试
6.10 Glossary 术语表
6.11 Exercises
xvi Contents
7 Iteration 迭代87
7.1 Multiple assignment多次赋值
7.2 Updating variables更新变量
7.3 The while statement while语句
7.4 break
7.5 Square roots平方根
7.6 Algorithms算法
7.7 Debugging调试
7.8 Glossary术语表
7.9 Exercises
8 Strings 字符串97
8.1 A string is a sequence字符串是一个序列
8.2 len
8.3 Traversal with a for loop 使用for循环遍历
8.4 String slices字符串切片
8.5 Strings are immutable字符串是不可变的
8.6 Searching搜索
8.7 Looping and counting循环和计数
8.8 String methods字符串方法
8.9 The in operator in运算符
8.10 String comparison字符串比较
8.11 Debugging调试
8.12 Glossary 术语
8.13 Exercises
9 Case study: word play 案例分析:word play
9.1 Reading word lists读取单词列表
9.2 Exercises习题
9.3 Search 搜索
9.4 Looping with indices使用索引的循环
9.5 Debugging调试
9.6 Glossary 术语表
9.7 Exercises
Contents xvii
10 Lists 列表
10.1 A list is a sequence列表是一个序列
10.2 Lists are mutable列表是可变的
10.3 Traversing a list遍历一个列表
10.4 List operations列表运算
10.5 List slices列表切片
10.6 List methods列表方法
10.7 Map, filter and reduce映射、过滤和削减
10.8 Deleting elements删除元素
10.9 Lists and strings列表和字符串
10.10 Objects and values 对象和值
10.11 Aliasing别名
10.12 List arguments列表实参
10.13 Debugging调试
10.14 Glossary术语表
10.15 Exercises
11 Dictionaries 字典
11.1 Dictionary as a set of counters字典作为计数器集合
11.2 Looping and dictionaries循环和字典
11.3 Reverse lookup逆向查找
11.4 Dictionaries and lists字典和列表
11.5 Memos 备忘录
11.6 Global variables全局变量
11.7 Long integers长整数
11.8 Debugging调试
11.9 Glossary 术语表
11.10 Exercises
xviii Contents
12 Tuples 元组
12.1 Tuples are immutable元组是不可变的
12.2 Tuple assignment元组赋值
12.3 Tuples as return values元组作为返回值
12.4 Variable-length argument tuples变长实参元组
12.5 Lists and tuples列表和元组
12.6 Dictionaries and tuples字典和元组
12.7 Comparing tuples元组比较
12.8 Sequences of sequences序列的序列
12.9 Debugging调试
12.10 Glossary 术语表
12.11 Exercises
13 Case study: data structure selection 案例学习:数据结构选择
13.1 Word frequency analysis 词频分析
13.2 Random numbers 随机数
13.3 Word histogram单词直方图
13.4 Most common words最常用单词
13.5 Optional parameters可选形参
13.6 Dictionary subtraction字典差集
13.7 Random words 随机单词
13.8 Markov analysis马尔科夫分析
13.9 Data structures数据结构
13.10 Debugging调试
13.11 Glossary 术语表
13.12 Exercises
14 Files 文件
14.1 Persistence持久化
14.2 Reading and writing读与写
14.3 Format operator格式化操作符
14.4 Filenames and paths文件名与路径
Contents xix
14.5 Catching exceptions捕捉异常
14.6 Databases 数据库
14.7 Pickling
14.8 Pipes 管道
14.9 Writing modules编写模块
14.10 Debugging调试
14.11 Glossary术语表
14.12 Exercises
15 Classes and objects 类和对象
15.1 User-defined types用户自定义类型
15.2 Attributes属性
15.3 Rectangles 矩形
15.4 Instances as return values实例作为返回值
15.5 Objects are mutable对象是可变的
15.6 Copying 复制
15.7 Debugging调试
15.8 Glossary术语表
15.9 Exercises练习
16 Classes and functions 类和函数
16.1 Time
16.2 Pure functions纯函数
16.3 Modifiers 过程
16.4 Prototyping versus planning原型vs 计划
16.5 Debugging调试
16.6 Glossary术语表
16.7 Exercises练习
xx Contents
17 Classes and methods 类和方法
17.1 Object-oriented features面向对象的特性
17.2 Printing objects打印对象
17.3 Another example一个范例
17.4 A more complicated example一个更复杂的例子
17.5 The init method init方法
17.6 The __str__ method __str__方法
17.7 Operator overloading运算符重载
17.8 Type-based dispatch类型分发
17.9 Polymorphism多态
17.10 Debugging调试
17.11 Interface and implementation接口和实现
17.12 Glossary术语表
17.13 Exercises练习
18 Inheritance继承237
18.1 Card objects卡牌对象
18.2 Class attributes类属性
18.3 Comparing cards比较大小
18.4 Decks一副牌
18.5 Printing the deck打印一副牌
18.6 Add, remove, shuffle and sort添加,移除,洗牌和排序
18.7 Inheritance继承
18.8 Class diagrams 类图
18.9 Debugging调试
18.10 Data encapsulation数据封装
18.11 Glossary术语表
18.12 Exercises练习
Contents xxi
19 Case study: Tkinter 案例学习:Tkinter
19.1 GUI
19.2 Buttons and callbacks按钮和回调函数
19.3 Canvas widgets画布组件
19.4 Coordinate sequences坐标序列
19.5 More widgets更多组件
19.6 Packing widgets打包组件
19.7 Menus and Callables 菜单和可调用对象
19.8 Binding 绑定
19.9 Debugging调试
19.10 Glossary术语表
19.11 Exercises练习
A Debugging 调试
A.1 Syntax errors语法错误
A.2 Runtime errors运行时错误
A.3 Semantic errors语义错误
B Analysis of Algorithms算法分析
B.1 Order of growth增长的阶数
B.2 Analysis of basic Python operations基本Python运算的分析
B.3 Analysis of search algorithms搜索算法分析
B.4 Hashtables 哈希表
C Lumpy
C.1 State diagram 状态图
C.2 Stack diagram栈图
C.3 Object diagrams 对象图
C.4 Function and class objects函数和类对象
C.5 Class Diagrams 类图
xxii Contents