Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code, 4th edition
Published by Addison-Wesley Professional (June 27, 2017) © 2018
- Zed A. Shaw
eTextbook
- Anytime, anywhere learning with the Pearson+ app
- Easy-to-use search, navigation and notebook
- Simpler studying with flashcards
- A print text (hardcover or paperback)
- Free shipping
- Also available for purchase as an ebook from all major ebook resellers, including InformIT.com
Zed Shaw has perfected the world's best system for learning Python. Following it, students will succeed-just like the hundreds of thousands of beginners Zed has taught to date!
In Learn Python 3 the Hard Way, students will learn Python while working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix mistakes. Watch the programs run. As they do, they'll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use.
- Python for beginners: a disciplined, practice-driven training method that works!
- By Zed Shaw: top blogger, outstanding teacher, renowned open source project leader
- Refined through Shaw's extensive instructional work online, where he attracts 10-20K visitors per day: an earlier online version of this book earned 500K+ downloads
Preface xvii
Acknowledgments xx
Exercise 0: The Setup 2
macOS 2
Windows 3
Linux 4
Finding Things on the Internet 5
Warnings for Beginners 6
Alternative Text Editors 6
Exercise 1: A Good First Program 8
What You Should See 10
Study Drills 12
Common Student Questions 12
Exercise 2: Comments and Pound Characters 14
What You Should See 14
Study Drills 14
Common Student Questions 15
Exercise 3: Numbers and Math 16
What You Should See 17
Study Drills 17
Common Student Questions 17
Exercise 4: Variables and Names 20
What You Should See 21
Study Drills 21
Common Student Questions 21
Exercise 5: More Variables and Printing 24
What You Should See 24
Study Drills 25
Common Student Questions 25
Exercise 6: Strings and Text 26
What You Should See 27
Study Drills 27
Break It 27
Common Student Questions 27
Exercise 7: More Printing 28
What You Should See 28
Study Drills 29
Break It 29
Common Student Questions 29
Exercise 8: Printing, Printing 30
What You Should See 30
Study Drills 31
Common Student Questions 31
Exercise 9: Printing, Printing, Printing 32
What You Should See 32
Study Drills 33
Common Student Questions 33
Exercise 10: What Was That? 34
What You Should See 35
Escape Sequences 35
Study Drills 36
Common Student Questions 36
Exercise 11: Asking Questions 38
What You Should See 38
Study Drills 39
Common Student Questions 39
Exercise 12: Prompting People 40
What You Should See 40
Study Drills 40
Common Student Questions 41
Exercise 13: Parameters, Unpacking, Variables 42
Hold Up! Features Have Another Name 42
What You Should See 43
Study Drills 44
Common Student Questions 44
Exercise 14: Prompting and Passing 46
What You Should See 46
Study Drills 47
Common Student Questions 47
Exercise 15: Reading Files 48
What You Should See 49
Study Drills 49
Common Student Questions 50
Exercise 16: Reading and Writing Files 52
What You Should See 53
Study Drills 53
Common Student Questions 54
Exercise 17: More Files 56
What You Should See 56
Study Drills 57
Common Student Questions 57
Exercise 18: Names, Variables, Code, Functions 60
What You Should See 61
Study Drills 62
Common Student Questions 62
Exercise 19: Functions and Variables 64
What You Should See 65
Study Drills 65
Common Student Questions 65
Exercise 20: Functions and Files 68
What You Should See 69
Study Drills 69
Common Student Questions 69
Exercise 21: Functions Can Return Something 72
What You Should See 73
Study Drills 73
Common Student Questions 74
Exercise 22: What Do You Know So Far? 76
What You Are Learning 76
Exercise 23: Strings, Bytes, and Character Encodings 78
Initial Research 78
Switches, Conventions, and Encodings 80
Disecting the Output 82
Disecting the Code 82
Encodings Deep Dive 84
Breaking It 85
Exercise 24: More Practice 86
What You Should See 87
Study Drills 87
Common Student Questions 87
Exercise 25: Even More Practice 90
What You Should See 91
Study Drills 92
Common Student Questions 93
Exercise 26: Congratulations, Take a Test! 94
Common Student Questions 94
Exercise 27: Memorizing Logic 96
The Truth Terms 96
The Truth Tables 97
Common Student Questions 98
Exercise 28: Boolean Practice 100
What You Should See 102
Study Drills 102
Common Student Questions 102
Exercise 29: What If 104
What You Should See 104
Study Drills 105
Common Student Questions 105
Exercise 30: Else and If 106
What You Should See 107
Study Drills 107
Common Student Questions 107
Exercise 31: Making Decisions 108
What You Should See 109
Study Drills 109
Common Student Questions 109
Exercise 32: Loops and Lists 112
What You Should See 113
Study Drills 114
Common Student Questions 114
Exercise 33: While Loops 116
What You Should See 117
Study Drills 117
Common Student Questions 118
Exercise 34: Accessing Elements of Lists 120
Study Drills 121
Exercise 35: Branches and Functions 122
What You Should See 123
Study Drills 124
Common Student Questions 124
Exercise 36: Designing and Debugging 126
Rules for if-statements 126
Rules for Loops 126
Tips for Debugging 127
Homework 127
Exercise 37: Symbol Review 128
Keywords 128
Data Types 129
String Escape Sequences 130
Old Style String Formats 130
Operators 131
Reading Code 132
Study Drills 133
Common Student Questions 133
Exercise 38: Doing Things to Lists 134
What You Should See 135
What Lists Can Do 136
When to Use Lists 137
Study Drills 137
Common Student Questions 138
Exercise 39: Dictionaries, Oh Lovely Dictionaries 140
A Dictionary Example 141
What You Should See 142
What Dictionaries Can Do 143
Study Drills 144
Common Student Questions 144
Exercise 40: Modules, Classes, and Objects 146
Modules Are Like Dictionaries 146
What You Should See 150
Study Drills 150
Common Student Questions 151
Exercise 41: Learning to Speak Object-Oriented 152
Word Drills 152
Phrase Drills 152
Combined Drills 153
A Reading Test 153
Practice English to Code 155
Reading More Code 156
Common Student Questions 156
Exercise 42: Is-A, Has-A, Objects, and Classes 158
How This Looks in Code 159
About class Name(object) 161
Study Drills 161
Common Student Questions 161
Exercise 43: Basic Object-Oriented Analysis and Design 164
The Analysis of a Simple Game Engine 165
Top Down versus Bottom Up 169
The Code for “Gothons from Planet Percal #25” 170
What You Should See 176
Study Drills 176
Common Student Questions 177
Exercise 44: Inheritance versus Composition 178
What Is Inheritance? 178
The Reason for super() 183
Composition 184
When to Use Inheritance or Composition 185
Study Drills 185
Common Student Questions 186
Exercise 45: You Make a Game 188
Evaluating Your Game 188
Function Style 189
Class Style 189
Code Style 190
Good Comments 190
Evaluate Your Game 190
Exercise 46: A Project Skeleton 192
macOS/Linux Setup 192
Windows 10 Setup 194
Creating the Skeleton Project Directory 195
Testing Your Setup 197
Using the Skeleton 198
Required Quiz 198
Common Student Questions 198
Exercise 47: Automated Testing 200
Writing a Test Case 200
Testing Guidelines 202
What You Should See 202
Study Drills 203
Common Student Questions 203
Exercise 48: Advanced User Input 204
Our Game Lexicon 204
A Test First Challenge 206
What You Should Test 207
Study Drills 209
Common Student Questions 209
Exercise 49: Making Sentences 210
Match and Peek 210
The Sentence Grammar 211
A Word on Exceptions 211
The Parser Code 211
Playing with the Parser 214
What You Should Test 215
Study Drills 215
Common Student Questions 215
Exercise 50: Your First Website 216
Installing flask 216
Make a Simple “Hello World” Project 216
What’s Going On? 218
Fixing Errors 218
Create Basic Templates 219
Study Drills 221
Common Student Questions 221
Exercise 51: Getting Input from a Browser 224
How the Web Works 224
How Forms Work 226
Creating HTML Forms 227
Creating a Layout Template 229
Writing Automated Tests for Forms 230
Study Drills 232
Breaking It 232
Exercise 52: The Start of Your Web Game 234
Refactoring the Exercise 43 Game 234
Creating an Engine 239
Your Final Exam 241
Common Student Questions 242
Next Steps 244
How to Learn Any Programming Language 245
Advice from an Old Programmer 246
Appendix Command Line Crash Course 248
Introduction: Shut Up and Shell 248
The Setup 249
Paths, Folders, Directories (pwd) 253
If You Get Lost 255
Make a Directory (mkdir) 255
Change Directory (cd) 258
List Directory (ls) 261
Remove Directory (rmdir) 265
Moving Around (pushd, popd) 268
Making Empty Files (touch/New-Item) 271
Copy a File (cp) 272
Moving a File (mv) 275
View a File (less/more) 277
Stream a File (cat) 278
Removing a File (rm) 280
Exiting Your Terminal (exit) 282
Command Line Next Steps 283
Index 284
Zed A. Shaw is the author of the popular online books Learn Python the Hard Way, Learn Ruby the Hard Way, and Learn C the Hard Way. He is also the creator of several open source software projects and has been programming and writing for nearly 20 years. Most of his free time is devoted to the study of painting and art history.
Need help? Get in touch