Learn More Python 3 the Hard Way: The Next Step for New Python Programmers, 1st edition

Published by Addison-Wesley Professional (September 13, 2017) © 2018

  • Zed A. Shaw

eTextbook

C$53.74

  • Available for purchase from all major ebook resellers, including InformIT.com.
  • To request a review copy, click on the "Request a Review Copy" button.
C$56.24

  • A print text (hardcover or paperback) 
  • Free shipping
  • Also available for purchase as an ebook from all major ebook resellers, including InformIT.com

Each project in Learn More Python the Hard Way helps readers build a key practical skill -- combining demonstrations to get them started, and challenges to help them achieve even deeper understanding. Shaw organizes this practical programming course into five sections: working with commands, organizing and using data, applying algorithms, processing text, and implementing simple internet-style networking protocols. Along the way, Shaw stresses efficient processes and practical hacking mindsets -- helping readers gain true mastery, not just follow recipes!

  • The perfect follow-up to Zed Shaw's best-sellingLearn Python the Hard Way: for everyone who's already started working with Python
  • Analyze problems, design solutions based on analysis, and implement your solutions in the simplest way possible
  • Systematically improve programming skills through 52 practical projects
  • By Zed Shaw, a powerhouse teacher, coder, and blogger with a unique voice and a worldwide following

The full text downloaded to your computer

With eBooks you can:

  • search for key concepts, words and phrases
  • make highlights and notes as you study
  • share your notes with friends

eBooks are downloaded to your computer and accessible either offline through the Bookshelf (available as a free download), available online and also via the iPad and Android apps.

Upon purchase, you'll gain instant access to this eBook.

Preface xiv

 

Part I: Initial Knowledge 2

 

Exercise 0: The Setup 6

A Programmer’s Editor 6

Python 3.6 6

A Working Terminal 6

A Working pip+virtualenv Configuration 7

Lab Journal 7

A Github.com Account 7

git 7

Optional: Screen-Recording Software 8

Further Study 8

 

Exercise 1: On Process 10

Exercise Challenge 11

Study Drills 12

Further Study 12

 

Exercise 2: On Creativity 14

Exercise Challenge 14

Study Drill 15

 

Exercise 3: On Quality 16

Exercise Challenge 18

Study Drill 18

 

Part II: Quick Hacks 20

 

Exercise 4: Dealing with Command Line Arguments 24

Exercise Challenge 24

Solution 25

Study Drills 25

 

Exercise 5: cat 26

Exercise Challenge 26

Solution 27

Study Drills 27

Further Study 27

 

Exercise 6: find 28

Exercise Challenge 29

Study Drills 30

Further Study 30

 

Exercise 7: grep 32

Exercise Challenge 32

Study Drills 33

Further Study 33

 

Exercise 8: cut 34

Exercise Challenge 35

Study Drill 35

Further Study 35

 

Exercise 9: sed 36

Exercise Challenge 36

Study Drills 37

Further Study 37

 

Exercise 10: sort 38

Exercise Challenge 38

Study Drills 39

Further Study 39

 

Exercise 11: uniq 40

Exercise Challenge 40

Study Drills 41

Further Study 41

 

Exercise 12: Review 42

Exercise Challenge 42

Study Drills 43

Further Study 43

 

Part III: Data Structures 46

 

Exercise 13: Single Linked Lists 50

Description 50

Controller 52

Test 53

Introductory Auditing 55

Exercise Challenge 56

Auditing 56

Study Drill 56

 

Exercise 14: Double Linked Lists 58

Introducing Invariant Conditions 59

Exercise Challenge 60

Study Drill 61

 

Exercise 15: Stacks and Queues 62

Exercise Challenge 62

Breaking It 64

Further Study 64

 

Exercise 16: Bubble, Quick, and Merge Sort 66

Exercise Challenge 66

Study Drills 71

 

Exercise 17: Dictionary 74

Exercise Challenge 74

Doing a “Code Master Copy” 74

Copy the Code 75

Annotate the Code 78

Summarize the Data Structure 78

Memorize the Summary 79

Implement from Memory 80

Repeat 80

Study Drills 81

Break It 81

 

Exercise 18: Measuring Performance 82

The Tools 82

Analyzing Performance 84

Exercise Challenge 86

Study Drills 86

Breaking It 86

Further Study 86

 

Exercise 19: Improving Performance 88

Exercise Challenge 89

Further Study 90

 

Exercise 20: Binary Search Trees 92

BSTree Requirements 92

Deleting 93

Exercise Challenge 94

Study Drills 94

 

Exercise 21: Binary Search 96

Exercise Challenge 96

Study Drills 96

Further Study 97

 

Exercise 22: Suffix Arrays 98

Exercise Challenge 99

Study Drills 99

Further Study 99

 

Exercise 23: Ternary Search Trees 100

Exercise Challenge 100

Study Drills 102

 

Exercise 24: Fast URL Search 104

Exercise Challenge 104

Study Drills 105

Further Study 105

 

Part IV: Intermediate Projects 106

 

Exercise 25: xargs 108

Exercise Challenge 108

Study Drills 108

 

Exercise 26: hexdump 110

Exercise Challenge 111

Study Drill 112

Further Study 112

 

Exercise 27: tr 114

Exercise Challenge 114

A Criticism of 45-Minute Blocks 115

Study Drills 115

 

Exercise 28: sh 116

Exercise Challenge 116

Study Drill 117

Further Study 117

 

Exercise 29: diff and patch 118

Exercise Challenge 118

Study Drill 119

Further Study 119

 

Part V: Parsing Text 120

 

Exercise 30: Finite State Machines 122

Exercise Challenge 123

Study Drills 125

Further Study 125

 

Exercise 31: Regular Expressions 126

Exercise Challenge 127

Study Drills 128

Further Study 128

 

Exercise 32: Scanners 130

Puny Python Scanner 131

Exercise Challenge 133

Study Drills 133

Further Study 133

 

Exercise 33: Parsers 136

Recursive Descent Parsing 137

BNF Grammars 138

Quick Demo Hack Parser 140

Exercise Challenge 142

Study Drill 142

Further Study 142

 

Exercise 34: Analyzers 144

Visitor Pattern 144

A Short Puny Python Analyzer 145

Parser versus Analyzer 148

Exercise Challenge 148

Study Drills 149

Further Study 149

 

Exercise 35: Interpreters 150

Interpreters versus Compilers 150

Python Is Both 151

How to Write an Interpreter 151

Exercise Challenge 152

Study Drills 152

Further Study 152

 

Exercise 36: Simple Calculator 154

Exercise Challenge 154

Study Drills 155

Further Study 155

 

Exercise 37: Little BASIC 156

Exercise Challenge 156

Study Drills 157

 

Part VI: SQL and Object Relational Mapping 158

 

Exercise 38: Introduction to SQL 160

What Is SQL? 160

The Setup 161

Learning SQL Vocabulary 162

SQL Grammar 163

Further Study 163

 

Exercise 39: Creating with SQL 164

Creating Tables 164

Creating a Multi-table Database 165

Inserting Data 165

Insert Referential Data 166

Exercise Challenge 166

Further Study 167

 

Exercise 40: Reading with SQL 168

Select across Many Tables 168

Exercise Challenge 169

Further Study 170

 

Exercise 41: Updating with SQL 172

Updating Complex Data 172

Replacing Data 173

Exercise Challenge 173

Further Study 174

 

Exercise 42: Deleting with SQL 176

Deleting Using Other Tables 176

Exercise Challenge 177

Further Study 178

 

Exercise 43: SQL Administration 180

Destroying and Altering Tables 180

Migrating and Evolving Data 181

Exercise Challenge 182

Further Study 182

 

Exercise 44: Using Python’s Database API 184

Learning an API 184

Exercise Challenge 185

Further Study 185

 

Exercise 45: Creating an ORM 186

Exercise Challenge 186

Further Study 187

 

Part VII: Final Projects 188

 

Exercise 46: blog 190

Exercise Challenge 190

Study Drills 191

 

Exercise 47: bc 192

Exercise Challenge 192

Study Drill 193

 

Exercise 48: ed 194

Exercise Challenge 194

Study Drills 195

 

Exercise 49: sed 196

Exercise Challenge 197

Study Drill 197

 

Exercise 50: vi 198

Exercise Challenge 198

Study Drills 199

 

Exercise 51: lessweb 200

Exercise Challenge 200

Breaking It 200

Study Drills 201

 

Exercise 52: moreweb 202

Exercise Challenge 202

Breaking It 203

Further Study 203

 

Index 204

Zed A. Shaw is the author of the popular online books Learn Python 3 the Hard Way, 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

Video
Play
Privacy and cookies
By watching, you agree Pearson can share your viewership data for marketing and analytics for one year, revocable by deleting your cookies.

Pearson eTextbook: What’s on the inside just might surprise you

They say you can’t judge a book by its cover. It’s the same with your students. Meet each one right where they are with an engaging, interactive, personalized learning experience that goes beyond the textbook to fit any schedule, any budget, and any lifestyle.