About the Authors v
About the Technical Writer v
About the Technical Editor v
Acknowledgments vi
Introduction xvii
Part I: Getting Started with Python 1
Lesson 1: Setting Up a Python Programming Environment 3
Python Overview 4
Using Replit Online 4
Getting Started with Jupyter Notebook 14
A Quick Look at Visual Studio Code 21
Using Python from the Command Line 24
Summary 26
Exercises 26
Lesson 2: Understanding Programming Basics 29
The Future of Computer Programming 30
Programming Languages 32
Data Types and Variables 37
Variables 40
Constants 44
Summary 46
Exercises 46
Lesson 3: Exploring Basic Python Syntax 49
Using with Single- Line Commands 51
Using Semicolons 52
Continuing with Backslash 54
Working with Case Structure 55
Adding Comments 56
Using the Input Function 57
Storing Input 59
Understanding Variable Types 61
Displaying Variable Values 62
Naming Variables 64
Summary 65
Exercises 65
Lesson 4: Working with Basic Python Data Types 69
Review of Data Types 70
Number Data Types 70
Identifying Data Types 72
Mathematical Operations 74
Pemdas 77
Common Math Functions 81
Math Library Functions 83
Using Numbers with User Input 86
Boolean Types and Boolean Operations 89
Logic Operations 92
Comparative Operators 95
Summary 96
Exercises 97
Lesson 5: Using Python Control Statements 101
Control Structures Review 101
Understanding Sequence Control Structure 102
Understanding Selection Statements 103
Understanding Conditional Statements 106
If- Else Statements 108
Working with Nested Conditions 109
Embedding Conditions 112
Summary 114
Exercises 114
Lesson 6: Pulling It All Together: Income Tax Calculator 117
Getting Started 118
Step 1: Gather Requirements 118
Step 2: Design the Program 120
Step 3: Create the Inputs 120
Step 4: Calculate the Taxable Income 122
Step 5: Calculate the Tax Rate 124
Step 6: Update the Application 133
Step 7: Address the UI 136
On Your Own 139
Summary 139
Part II: Loops and Data Structures 141
Lesson 7: Controlling Program Flow with Loops 143
Iterations Overview 144
The Anatomy of a Loop 144
The for Loop 145
The while Loop 146
for vs. while Loops 149
Strings and String Operations 151
Iterating through Strings 164
Summary 167
Exercises 167
Lesson 8: Understanding Basic Data Structures: Lists 173
Data Structure OverviewPart 1 174
Creating Lists 175
Determining List Length 179
Working with List Indexes 179
Negative Indexing in Lists 182
Slicing Lists 184
Adding Items to a List 189
Inserting List Items 190
Removing List Items 192
Concatenating Lists 196
List Comprehension 197
Sorting Lists 199
Copying Lists 200
Summary 202
Exercises 202
Lesson 9: Understanding Basic Data Structures: Tuples 205
Tuples and Tuple Operations 206
Tuple Index Values 209
Negative Indexing in Tuples 210
Slicing Tuples 212
Immutability 213
Concatenating Tuples 216
Searching Tuples 217
Summary 218
Exercises 219
Lesson 10: Diving Deeper into Data Structures: Dictionaries 223
Data Structure Overview Part 2 224
Getting Started with Dictionaries 224
Generating a Dictionary 227
Retrieving Items from a Dictionary 230
Using the keys() Method 233
Using the items() Method 234
Reviewing the keys(), values(), and items() Methods 236
Using the get() Method 239
Using the pop() Method 241
Working with the in Operator 245
Updating a Dictionary 246
Duplicating a Dictionary 249
Clearing a Dictionary 254
Summary 255
Exercises 255
Lesson 11: Diving Deeper into Data Structures: Sets 259
Sets 260
Retrieving Items from a Set 261
Adding Items to a Set 262
Creating an Empty Set 262
Understanding Set Uniqueness 263
Searching Items in a Set 265
Calculating the Length of a Set 267
Deleting Items from a Set 268
Clearing a Set 270
Popping Items in a Set 272
Deleting a Set 273
Determining the Difference Between Sets 274
Intersecting Sets 277
Combining Sets 278
Summary 279
Exercises 279
Lesson 12: Pulling It All Together: Prompting for an Address 283
Step 1: Getting Started 284
Step 2: Accept User Input 285
Step 3: Display the Input Value 286
Step 4: Modify the Output 287
Step 5: Split a Text Value 288
Step 6: Display Only the House Number 290
Step 7: Display the Street Name 291
Step 8: Add the Period 292
Summary 293
Lesson 13: Organizing with Functions 295
Functions Overview 295
Defining Functions in Python 296
Function Syntax 300
Default Input Values 301
Parameter Syntax 303
Arbitrary Arguments 304
Keyword Arguments 306
Arbitrary Keyword Arguments 306
Summary 308
Exercises 309
Part III: Object- Oriented Programming in Python 311
Lesson 14: Incorporating Object- Oriented Programming 313
Object- Oriented Programming Overview 314
Defining Classes 314
Creating Objects 316
Working with Methods 319
Class Attributes 324
Summary 330
Exercises 330
Lesson 15: Including
Inheritance 333
Understanding Inheritance 334
Creating a Parent Class 335
Creating a Child Class 335
Inheriting at Multiple Levels 338
Overriding Methods 340
Summary 343
Exercises 344
Lesson 16: Pulling It All Together: Building a Burger Shop 349
Requirements for Our Application 350
Plan the Code 350
Create the Classes 351
Create the Food Item Class 352
Create the Main File 357
Display the Output 364
Tie the Code Files Together 364
Summary 368
Part IV: Data Processing with Python 369
Lesson 17: Working with Dates and Times 371
Getting Started with Dates and Times 372
Getting the Current Date and Time 376
Splitting a Date String 377
Using datetime Attributes 379
Creating Custom datetime Objects 380
Compare datetime Values 381
Working with UTC Format 383
Applying Timestamps 384
Arithmetic and Dates 387
Calculating the Difference in Days 388
Using Date without Time 390
Using Time without Date 392
Summary 394
Exercises 394
Calculator 1: Time Duration 396
Calculator 2: Add or Subtract Time from a Date 397
Calculator 3: Age Calculator 397
Lesson 18: Processing Text Files 399
File Processing Overview 401
Introduction to File Input/Output 402
Processing Text Files 404
Opening a File 404
Reading Text from a File 406
Add Content to a File 412
Overwriting the Contents of a File 415
Creating a New File 417
Using the os Module 418
Deleting a File 419
Summary 421
Exercises 421
Lesson 19: Processing CSV Files 425
Reading CSV Files 426
Using the DictReader Class 430
Creating a Dataset List 432
Using writerow() 434
Appending Data 436
Writing Rows as Lists 439
Writing Rows from Dictionaries 440
Summary 444
Exercises 444
Lesson 20: Processing JSON Files 447
Processing JSON Files 448
Creating a JSON File with dump() 448
Converting to JSON with dumps() 449
Formatting JSON Data 450
Using json.loads() 452
Iterating through JSON Data 454
Reading and Writing JSON Data 457
Summary 460
Exercises 461
Part V: Data Analysis and Exception Handling 465
Lesson 21: Using Lambdas 467
Creating a Lambda Function 468
Working with Multiple Inputs 469
Placing Lambda Functions inside a Function 471
Using the map() Function 472
Combining Map and Lambda Functions 475
Using the filter() Function 477
Combining a Filter and a Lambda 479
Using the reduce() Function 480
Summary 486
Exercises 486
Lesson 22: Handling Exceptions 491
Built- In Exceptions 492
Working with try and except 493
Working with Multiple Excepts 495
Combining Exception Types 498
Using Multiple Operations in a try 500
Using the raise Keyword 501
Exploring the General Exception Classes 502
Adding finally 505
Summary 506
Exercises 506
Lesson 23: Pulling It All Together: Word Analysis in Python 511
Examine the Data 512
Read the Data 514
Tokenize the Dataset 517
Count the Words in Each Review 524
Summary 528
Lesson 24: Extracting, Transforming, and Loading with ETL Scripting 531
ETL Scripting in Python 532
Design and Implement Custom ETL Scripts 532
The extract Class 534
The transform Class 546
The load Class 569
Summary 582
Exercises 582
Lesson 25: Improving ETL Scripting 585
Converting to Static Methods for the extract Class 586
Converting to Static Methods for the transform Class 588
Summary 607
Exercises 608
Part VI: Appendices 611
Appendix A: Flowcharts 613
Flowchart Basics 613
Common Flowcharting Shapes 615
Appendix B: Creating Pseudocode 621
What Is Pseudocode? 621
Appendix C: Installing MySQL 623
MySQL Installation 623
Verify the Installation 628
The MySQL Notifier 630
Appendix D: Installing Vinyl DB 631
Database Structure 631
Create the Database 632
Appendix E: Installing MongoDB 637
Installing MongoDB Community Server 637
Running MongoDB 642
Appendix F: Importing to MongoDB 643
Index 645