- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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!
Andere Kunden interessierten sich auch für
- Zed A. ShawLearn Python 3 the Hard Way28,99 €
- Obie FernandezThe Rails 5 Way54,99 €
- Paul GerrardLean Python25,99 €
- Palaniappan SellappanLearn Python. The Easy Way19,99 €
- Bryson PayneLearn Java the Easy Way24,99 €
- James TudorPython Programming For Beginners In 2021: Learn Python In 5 Days With Step By Step Guidance, Hands-on Exercises And Solution (Fun Tutorial For Novice24,99 €
- Sebastien PhlixHow can self-learners learn programming in the most efficient way? A pragmatic approach42,95 €
-
-
-
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!
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: Pearson Education
- Seitenzahl: 240
- Erscheinungstermin: 13. September 2017
- Englisch
- Abmessung: 231mm x 179mm x 16mm
- Gewicht: 393g
- ISBN-13: 9780134123486
- ISBN-10: 0134123484
- Artikelnr.: 45102762
- Herstellerkennzeichnung
- Libri GmbH
- Europaallee 1
- 36244 Bad Hersfeld
- 06621 890
- Verlag: Pearson Education
- Seitenzahl: 240
- Erscheinungstermin: 13. September 2017
- Englisch
- Abmessung: 231mm x 179mm x 16mm
- Gewicht: 393g
- ISBN-13: 9780134123486
- ISBN-10: 0134123484
- Artikelnr.: 45102762
- Herstellerkennzeichnung
- Libri GmbH
- Europaallee 1
- 36244 Bad Hersfeld
- 06621 890
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.
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
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
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
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