learn python the hard way - 7chan · pdf filewelcome to the 2nd edition of learn python the...
TRANSCRIPT
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .