Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Book 1: Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
CHAPTER 1: Starting with Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
CHAPTER 2: Using Interactive Mode, Getting Help, and Writing Apps . . . . . . . . . . . . 21
CHAPTER 3: Python Elements and Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
CHAPTER 4: Building Your First Python Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Book 2: Understanding Python Building Blocks . . . . . . . . . . . . . 65
CHAPTER 1: Working with Numbers, Text, and Dates . . . . . . . . . . . . . . . . . . . . . . . . . . 67
CHAPTER 2: Controlling the Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
CHAPTER 3: Speeding Along with Lists and Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
CHAPTER 4: Cruising Massive Data with Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . 155
CHAPTER 5: Wrangling Bigger Chunks of Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
CHAPTER 6: Doing Python with Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
CHAPTER 7: Sidestepping Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Book 3: Working with Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
CHAPTER 1: Working with External Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
CHAPTER 2: Juggling JSON Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
CHAPTER 3: Interacting with the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
CHAPTER 4: Libraries, Packages, and Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Book 4: Using Artificial Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . 351
CHAPTER 1: Demystifying Artificial Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
CHAPTER 2: Building a Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
CHAPTER 3: Doing Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
CHAPTER 4: Playing Around with AI on Cards, Sticks, and in the Cloud . . . . . . . . . . 415
Book 5: Doing Data Science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
CHAPTER 1: Understanding the Five Areas of Data Science . . . . . . . . . . . . . . . . . . . . 429
CHAPTER 2: Exploring Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
CHAPTER 3: Using Big Data from Google Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
,Book 6: Talking to Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
CHAPTER 1: Introducing Physical Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
CHAPTER 2: No Soldering! Using Grove Connectors for Building . . . . . . . . . . . . . . . 489
CHAPTER 3: Sensing the World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
CHAPTER 4: Making Things Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Book 7: Building Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
CHAPTER 1: Introducing Robotics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
CHAPTER 2: Building Your First Python Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
CHAPTER 3: Programming Your Robot Rover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
CHAPTER 4: Using Artificial Intelligence in Robotics . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
, Table of Contents
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Foolish Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
What to Buy to Do the Projects in This Book . . . . . . . . . . . . . . . . . . . . . . . 3
Icons Used in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Beyond the Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Where to Go from Here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
BOOK 1: GETTING STARTED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
CHAPTER 1: Starting with Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Why Python Is Hot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Choosing the Right Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Tools for Success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
Installing Python and VS Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Installing the Python extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Letting AI write your Python code . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Using GitHub Copilot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Using Jupyter Notebook for Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
CHAPTER 2: Using Interactive Mode, Getting Help,
and Writing Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Using Python’s Interactive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Opening Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Getting your Python version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Going into the Python Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Entering commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
Using Python’s built-in help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Exiting interactive help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Searching for specific help topics online . . . . . . . . . . . . . . . . . . . . . .28
Lots of free cheat sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
Creating a Folder for Your Python Code . . . . . . . . . . . . . . . . . . . . . . . . .28
Typing, Editing, and Debugging Python Code . . . . . . . . . . . . . . . . . . . . .29
Writing Python code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Saving your code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Running Python in VS Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Learning simple debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
Closing a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Table of Contents vii