实例介绍
【实例简介】
【实例截图】
【核心代码】
Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 The Hard Way Is Easier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Reading and Writing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Attention to Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Spotting Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Do Not Copy- Paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 A Note on Practice and Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 A Warning for the Smarties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Exercise 0 The Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Mac OSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 OSX: What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Windows: What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Linux: What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Warnings for Beginners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Exercise 1 A Good First Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Exercise 2 Comments and Pound Characters . . . . . . . . . . . . . . . . . . . . 18 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Exercise 3 Numbers and Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 vi CONTENTS Exercise 4 Variables and Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Exercise 5 More Variables and Printing . . . . . . . . . . . . . . . . . . . . . . . . . 28 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Exercise 6 Strings and Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Exercise 7 More Printing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Exercise 8 Printing, Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Exercise 9 Printing, Printing, Printing . . . . . . . . . . . . . . . . . . . . . . . . . . 36 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Exercise 10 What Was That? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Escape Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Exercise 11 Asking Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 CONTENTS vii Exercise 12 Prompting People . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Exercise 13 Parameters, Unpacking, Variables . . . . . . . . . . . . . . . . . . . . 46 Hold Up! Features Have Another Name . . . . . . . . . . . . . . . . . . . . . . . 46 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Exercise 14 Prompting and Passing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Exercise 15 Reading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Exercise 16 Reading and Writing Files . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Exercise 17 More Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Exercise 18 Names, Variables, Code, Functions . . . . . . . . . . . . . . . . . . . . 66 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Exercise 19 Functions and Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 viii CONTENTS Exercise 20 Functions and Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Exercise 21 Functions Can Return Something . . . . . . . . . . . . . . . . . . . . . 78 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Exercise 22 What Do You Know So Far? . . . . . . . . . . . . . . . . . . . . . . . . . 81 What You Are Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Exercise 23 Read Some Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Exercise 24 More Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Exercise 25 Even More Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Exercise 26 Congratulations, Take a Test! . . . . . . . . . . . . . . . . . . . . . . . . 90 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Exercise 27 Memorizing Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 The Truth Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 The Truth Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Exercise 28 Boolean Practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Exercise 29 What If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 CONTENTS ix Exercise 30 Else and If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Exercise 31 Making Decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Exercise 32 Loops and Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Exercise 33 While-Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Exercise 34 Accessing Elements of Lists . . . . . . . . . . . . . . . . . . . . . . . . . 114 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Exercise 35 Branches and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Exercise 36 Designing and Debugging . . . . . . . . . . . . . . . . . . . . . . . . . 120 Rules for If- Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Rules for Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Tips for Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Homework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Exercise 37 Symbol Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 String Escape Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 String Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 x CONTENTS Reading Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Exercise 38 Doing Things to Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Exercise 39 Dictionaries, Oh Lovely Dictionaries . . . . . . . . . . . . . . . . . . 132 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Exercise 40 Modules, Classes, and Objects . . . . . . . . . . . . . . . . . . . . . . 138 Modules Are Like Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Classes Are Like Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Objects Are Like Mini- Imports . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Getting Things from Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 A First-Class Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Exercise 41 Learning to Speak Object Oriented . . . . . . . . . . . . . . . . . . 144 Word Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Phrase Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Combined Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 A Reading Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Practice English to Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Reading More Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Exercise 42 Is- A, Has- A, Objects, and Classes . . . . . . . . . . . . . . . . . . . . . 150 How This Looks in Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 About class Name(object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 CONTENTS xi Exercise 43 Basic Object- Oriented Analysis and Design . . . . . . . . . . . . 156 The Analysis of a Simple Game Engine . . . . . . . . . . . . . . . . . . . . . . . 157 Write or Draw about the Problem . . . . . . . . . . . . . . . . . . . . . . . . 157 Extract Key Concepts and Research Them . . . . . . . . . . . . . . . . . . 158 Create a Class Hierarchy and Object Map for the Concepts . . . . 158 Code the Classes and a Test to Run Them . . . . . . . . . . . . . . . . . . 159 Repeat and Refi ne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Top Down vs. Bottom Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 The Code for “Gothons from Planet Percal #25” . . . . . . . . . . . . . . . 162 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Exercise 44 Inheritance vs. Composition . . . . . . . . . . . . . . . . . . . . . . . . 170 What is Inheritance? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Implicit Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Override Explicitly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Alter Before or After . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 All Three Combined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 The Reason for super() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Using super() with __init__ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 When to Use Inheritance or Composition . . . . . . . . . . . . . . . . . . . . . 177 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Exercise 45 You Make a Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Evaluating Your Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Function Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Class Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Code Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Good Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Evaluate Your Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Exercise 46 A Project Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Installing Python Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Creating the Skeleton Project Directory . . . . . . . . . . . . . . . . . . . . . . 185 xii CONTENTS Final Directory Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Testing Your Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Using the Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Required Quiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Exercise 47 Automated Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Writing a Test Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Testing Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Exercise 48 Advanced User Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Our Game Lexicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Breaking Up a Sentence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Lexicon Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Scanning Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Exceptions and Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 What You Should Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 Design Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Exercise 49 Making Sentences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Match and Peek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 The Sentence Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 A Word on Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 What You Should Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Exercise 50 Your First Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Installing lpthw.web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Make a Simple “Hello World” Project . . . . . . . . . . . . . . . . . . . . . . . . 207 What’s Going On? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Fixing Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 CONTENTS xiii Create Basic Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Exercise 51 Getting Input from a Browser . . . . . . . . . . . . . . . . . . . . . . 214 How the Web Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 How Forms Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 Creating HTML Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Creating a Layout Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 Writing Automated Tests for Forms . . . . . . . . . . . . . . . . . . . . . . . . . 221 Study Drills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Exercise 52 The Start of Your Web Game . . . . . . . . . . . . . . . . . . . . . . . 226 Refactoring the Exercise 43 Game . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Sessions and Tracking Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Creating an Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Your Final Exam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Common Student Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 How to Learn Any Programming Language . . . . . . . . . . . . . . . . . . . 238 Advice from an Old Programmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Appendix Command Line Crash Course . . . . . . . . . . . . . . . . . . . . . . . 243 Introduction: Shut Up and Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 How to Use This Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 You Will Be Memorizing Things . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Exercise 1: The Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Exercise 2: Paths, Folders, Directories (pwd) . . . . . . . . . . . . . . . . . . . 248 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Exercise 3: If You Get Lost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 xiv CONTENTS Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Exercise 4: Make a Directory (mkdir) . . . . . . . . . . . . . . . . . . . . . . . . . 250 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Exercise 5: Change Directory (cd) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Exercise 6: List Directory (ls) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Exercise 7: Remove Directory (rmdir) . . . . . . . . . . . . . . . . . . . . . . . . . 260 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Exercise 8: Move Around (pushd, popd) . . . . . . . . . . . . . . . . . . . . . . 262 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Exercise 9: Make Empty Files (Touch, New- Item) . . . . . . . . . . . . . . . 265 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Exercise 10: Copy a File (cp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Exercise 11: Move a File (mv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 CONTENTS xv Exercise 12: View a File (less, MORE) . . . . . . . . . . . . . . . . . . . . . . . . . 271 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Exercise 13: Stream a File (cat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Exercise 14: Remove a File (rm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Exercise 15: Exit Your Terminal (exit) . . . . . . . . . . . . . . . . . . . . . . . . . 275 Do This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 You Learned This . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Do More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Command Line Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Unix Bash References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 PowerShell References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论