If you can't read please download the document
Upload
hatuong
View
230
Download
2
Embed Size (px)
Citation preview
Learn Python The Hard WayRelease 2.0
Zed A. Shaw
June 24, 2011
CONTENTS
The Hard Way Is Easier 3Reading and Writing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Attention to Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Spotting Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Do Not Copy-Paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4A Note On Practice And Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Special Thanks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Exercise 0: The Setup 7Mac OSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Warnings For Beginners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Exercise 1: A Good First Program 13What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Exercise 2: Comments And Pound Characters 17What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Exercise 3: Numbers And Math 19What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Exercise 4: Variables And Names 21What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
i
Exercise 5: More Variables And Printing 23What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Exercise 6: Strings And Text 25What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Exercise 7: More Printing 27What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Exercise 8: Printing, Printing 29What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Exercise 9: Printing, Printing, Printing 31What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Exercise 10: What Was That? 33What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Exercise 11: Asking Questions 35What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Exercise 12: Prompting People 37What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Exercise 13: Parameters, Unpacking, Variables 39Hold Up! Features Have Another Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Exercise 14: Prompting And Passing 43What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Exercise 15: Reading Files 45What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exercise 16: Reading And Writing Files 49What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
ii
Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Exercise 17: More Files 53What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Exercise 18: Names, Variables, Code, Functions 55What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Exercise 19: Functions And Variables 59What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Exercise 20: Functions And Files 61What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Exercise 21: Functions Can Return Something 63What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Exercise 22: What Do You Know So Far? 67What You are Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Exercise 23: Read Some Code 69
Exercise 24: More Practice 71What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Exercise 25: Even More Practice 73What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Exercise 26: Congratulations, Take A Test! 77
Exercise 27: Memorizing Logic 79The Truth Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80The Truth Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Exercise 28: Boolean Practice 83What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Exercise 29: What If 87What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
iii
Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Exercise 30: Else And If 89What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Exercise 31: Making Decisions 91What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Exercise 32: Loops And Lists 95What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Exercise 33: While Loops 99What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Exercise 34: Accessing Elements Of Lists 103Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Exercise 35: Branches and Functions 105What You Should See . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Extra Credit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Exercise 36: Designing and Debugging 109Rules For If-Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Rules For Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Tips For Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Homework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Exercise 37: Symbol Review 111Keywords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .