下载 > 资源分类 >  开发技术 >  Python > Think in Python.pdf

Think in Python.pdf

2013-06-11 上传大小:948KB

Contents
Preface vii
1 The way of the program 1
1.1 The Python programming language . . . . . . . . . . . . . . . . . . 1
1.2 What is a program? . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1
.3 What is debugging? . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Formal and natural languages . . . . . . . . . . . . . . . . . . . . . 5
1.5 The first program . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Variables, expressions and statements 11
2.1 Values and types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Variable names and keywords . . . . . . . . . . . . . . . . . . . . . 13
2.4 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Operators and operands . . . . . . . . . . . . . . . . . . . . . . . . 14
2.6 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7 Order of operations . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.8 String operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
xiv Contents
2.9 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.10 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.11 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.12 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Functions 21
3.1 Function calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Type conversion functions . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Math functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5 Adding new functions . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.6 Definitions and uses . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.7 Flow of execution . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.8 Parameters and arguments . . . . . . . . . . . . . . . . . . . . . . 26
3.9 Variables and parameters are local . . . . . . . . . . . . . . . . . . 28
3.10 Stack diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.11 Fruitful functions and void functions . . . . . . . . . . . . . . . . . 29
3.12 Why functions? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.13 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.14 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.15 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Case study: interface design 35
4.1 TurtleWorld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Simple repetition . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Encapsulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Generalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.6 Interface design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Contents xv
4.7 Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.8 A development plan . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.9 docstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.10 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.11 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Conditionals and recursion 45
5.1 Modulus operator . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.2 Boolean expressions . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3 Logical operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4 Conditional execution . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.5 Alternative execution . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.6 Chained conditionals . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.7 Nested conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.8 Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.9 Stack diagrams for recursive functions . . . . . . . . . . . . . . . . 50
5.10 Infinite recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.11 Keyboard input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.12 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.13 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.14 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6 Fruitful functions 57
6.1 Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.2 Incremental development . . . . . . . . . . . . . . . . . . . . . . . 58
6.3 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.4 Boolean functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.5 More recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.6 Leap of faith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
xvi Contents
6.7 One more example . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.8 Checking types . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.9 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.10 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.11 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7 Iteration 69
7.1 Multiple assignment . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.2 Updating variables . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.3 The while statement . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.4 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.5 Square roots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.6 Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.8 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8 Strings 79
8.1 A string is a sequence . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.2 len . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.3 Traversal with a for loop . . . . . . . . . . . . . . . . . . . . . . . 80
8.4 String slices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.5 Strings are immutable . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.6 A find function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.7 Looping and counting . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.8 string methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.9 The in operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.10 String comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.11 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.12 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
8.13 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Contents xvii
9 Case study: word play 91
9.1 Reading word lists . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
9.2 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
9.3 Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
9.4 Looping with indices . . . . . . . . . . . . . . . . . . . . . . . . . 94
9.5 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.7 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
10 Lists 99
10.1 A list is a sequence . . . . . . . . . . . . . . . . . . . . . . . . . . 99
10.2 Lists are mutable . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10.3 Traversing a list . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
10.4 List operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.5 List slices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.6 List methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.7 Map, filter and reduce . . . . . . . . . . . . . . . . . . . . . . . . . 104
10.8 Deleting elements . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.9 Objects and values . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.10 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
10.11 List arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.12 Copying lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.13 Lists and strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.14 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.15 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
10.16 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
xviii Contents
11 Dictionaries 113
11.1 Dictionary as a set of counters . . . . . . . . . . . . . . . . . . . . 114
11.2 Looping and dictionaries . . . . . . . . . . . . . . . . . . . . . . . 116
11.3 Reverse lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
11.4 Dictionaries and lists . . . . . . . . . . . . . . . . . . . . . . . . . 118
11.5 Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
11.6 Long integers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
11.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
11.8 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
11.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
12 Tuples 125
12.1 Tuples are immutable . . . . . . . . . . . . . . . . . . . . . . . . . 125
12.2 Tuple assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.3 Tuples as return values . . . . . . . . . . . . . . . . . . . . . . . . 127
12.4 Lists and tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
12.5 Dictionaries and tuples . . . . . . . . . . . . . . . . . . . . . . . . 129
12.6 Sorting tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
12.7 Sequences of sequences . . . . . . . . . . . . . . . . . . . . . . . . 131
12.8 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
12.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
13 Case study: data structure selection 133
13.1 DSU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
13.2 Word frequency analysis . . . . . . . . . . . . . . . . . . . . . . . 134
13.3 Random numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
13.4 Word histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
13.5 Most common words . . . . . . . . . . . . . . . . . . . . . . . . . 137
13.6 Optional arguments . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Contents xix
13.7 Dictionary subtraction . . . . . . . . . . . . . . . . . . . . . . . . . 138
13.8 Random words . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.9 Markov analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
13.10 Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
13.11 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
14 Files 143
14.1 Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
14.2 Reading and writing . . . . . . . . . . . . . . . . . . . . . . . . . . 143
14.3 Format operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
14.4 Filenames and paths . . . . . . . . . . . . . . . . . . . . . . . . . . 145
14.5 Catching exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . 147
14.6 Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
14.7 Pickling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
14.8 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
15 Classes and objects 151
15.1 User-defined types . . . . . . . . . . . . . . . . . . . . . . . . . . 151
15.2 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
15.3 Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
15.4 Instances as return values . . . . . . . . . . . . . . . . . . . . . . . 154
15.5 Objects are mutable . . . . . . . . . . . . . . . . . . . . . . . . . . 155
15.6 Copying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
15.7 Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
15.8 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
15.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
xx Contents
16 Classes and functions 159
16.1 Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
16.2 Pure functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
16.3 Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
16.4 Prototyping versus planning . . . . . . . . . . . . . . . . . . . . . 162
16.5 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
16.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
17 Classes and methods 165
17.1 Object-oriented features . . . . . . . . . . . . . . . . . . . . . . . . 165
17.2 print time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
17.3 Another example . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
17.4 A more complicated example . . . . . . . . . . . . . . . . . . . . . 168
17.5 The init method . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
17.6 The str method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
17.7 Operator overloading . . . . . . . . . . . . . . . . . . . . . . . . . 170
17.8 Type-based dispatch . . . . . . . . . . . . . . . . . . . . . . . . . . 171
17.9 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
17.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
17.11 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
18 Inheritance 175
18.1 Card objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
18.2 Class attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
18.3 Comparing cards . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
18.4 Decks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
18.5 Printing the deck . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
18.6 Add, remove, shuffle and sort . . . . . . . . . . . . . . . . . . . . . 180
18.7 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
18.8 Class diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
18.9 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
18.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Contents xxi
19 Case study: Tkinter 187
19.1 Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
19.2 Buttons and callbacks . . . . . . . . . . . . . . . . . . . . . . . . . 188
19.3 Canvas widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
19.4 Coordinate sequences . . . . . . . . . . . . . . . . . . . . . . . . . 190
19.5 More widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
19.6 Packing widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
19.7 Menus and Callables . . . . . . . . . . . . . . . . . . . . . . . . . 195
19.8 Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
19.9 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
A Debugging 201
A.1 Syntax errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.2 Runtime errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
A.3 Semantic errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
...展开收缩
综合评分:4.6(8位用户评分)
开通VIP C币充值 立即下载

评论共有7条

huzibaba2016-11-30 22:43:39
正在学习,收下了,谢谢。
dongzai10052016-10-12 11:03:45
正在学习python,很好
u0138714612016-04-02 14:25:57
内容很全面,但是表示很难坚持读完,现在才看了一半

登录后才能评论

 

相关推荐

Think DSP Digital Signal Processing in Python mobi 立即下载
积分/C币:3
Think in Python 立即下载
积分/C币:10
Think.DSP.Digital.Signal.Processing.in.Python.1491938455_Early.Release 立即下载
积分/C币:10
Think DSP_ Digital Signal Processing in Python 立即下载
积分/C币:10
Think in Java源码编译与安装及原书中文第4版pdf 立即下载
积分/C币:3
think in java 4th edition pdf 立即下载
积分/C币:12
Think in java pdf 第四版 立即下载
积分/C币:3
Think in java.pdf 立即下载
积分/C币:0
Think in C++ PDF 第二版第一、第二卷(英文) 立即下载
积分/C币:3
think python (中文版).pdf 立即下载
积分/C币:5
How To Think Like A (Python) Programmer - Downey (2007).pdf 立即下载
积分/C币:10
《Think in Java》中文版-pdf-前言 立即下载
积分/C币:3
Think Python.pdf 像计算机科学家那样思考,Python 立即下载
积分/C币:12
Think Python How to think like a computer scientist.pdf 立即下载
积分/C币:0
Python in a Nutshell A Desktop Quick Reference(3rd) 无水印pdf 立即下载
积分/C币:10
Python in Practice 无水印pdf 立即下载
积分/C币:10
Data Structures and Algorithms in Python 无水印pdf 立即下载
积分/C币:12
Functional Programming in Python 无水印pdf 立即下载
积分/C币:12
Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours(2nd) 无水印pdf 立即下载
积分/C币:10
Solving PDEs in Python 无水印pdf 立即下载
积分/C币:10

热门专辑

img
matthewadu

关注

等级:2积分 186

VIP会员动态

关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
扫码关注并点击右下角获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

Think in Python.pdf

会员到期时间: 剩余下载个数: 剩余C币:593 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
C币充值 开通VIP
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可奖励5下载分

  • 举报人:
  • 被举报人:
  • 举报的资源分:
  • *类型:
  • *详细原因: