下载 > 资源分类 > 开发技术 > 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会员 免积分下载

热门专辑

评论共有7条

name
huzibaba2016-11-30 22:43:39
正在学习,收下了,谢谢。
name
dongzai10052016-10-12 11:03:45
正在学习python,很好
name
u0138714612016-04-02 14:25:57
内容很全面,但是表示很难坚持读完,现在才看了一半
name
mind_revolution2016-03-13 13:17:40
内容很全面,但是需要花时间看完
name
magiclake2014-10-01 09:51:55
字体很清晰 要是有目录就更好了
name
net_vc2014-06-27 17:28:49
挺好的教材,但是是英文版的。
name
u0133614442014-04-02 11:23:49
正在学习python,很好

评论资源

您不能发表评论,可能是以下原因:

登录后才能评论

待评论资源
 
img
matthewadu

关注

等级:2积分 172

VIP会员动态

关闭
img

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

CSDN vip年卡 4000万程序员的必选现在开通,立省540元
下载
img

Think in Python.pdf

会员到期时间:剩余下载个数:
VIP下载

积分不足!

资源所需积分 当前拥有积分
您可以选择
开通VIP年卡
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省540元
或者
购买C币兑换积分
img
资源所需积分 当前拥有积分
VIP年卡全年1200个资源免积分下载促销价60元,开通立省540元
下载
下载

兑换成功

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

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

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

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

举报

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

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