Why Python?
Python & VS Code Setup
Your First Python Script
How Python Runs Code
Comments: Your Code Notes
What's a List?
Creating Your First List
Indexing List Elements
Slicing Lists
Adding Elements to Lists
Removing Elements
Changing List Elements
List Length & Concatenation
Checking for Membership
Sorting Lists
Iterating Through Lists
Your Code's First Choice
Comparing Values
What if Not True?
More Than Two Choices
And, Or, Not: Logic Gates
Any of These?
The Opposite of True
Order of Operations
Decisions Within Decisions
Ternary Operator (Optional)
Why Functions?
Your First Function
Functions with Parameters
Passing Arguments
Getting Values Back
Multiple Returns & None
Building Simple Programs
Default Parameters
Args: Positional Power
Kwargs: Keyword Control
Args & Kwargs Together
Local Scope: Function's World
Global Scope: The Big Picture
The 'global' Keyword
The 'nonlocal' Keyword
Why Type Hints?
Hinting Parameters & Returns
Complex Type Hints
Custom Types & Aliases
Checking Your Types
What are Errors?
Common Runtime Errors
Introducing try-except
Handling Specific Errors
Multiple Except Blocks
Catching All Exceptions
The else Block
The finally Block
Getting Exception Info
When to Use Error Handling
Best Practices
Why Virtual Environments?
What is a Virtual Env?
Creating Your First Env
Activating & Deactivating
Working in Your Env
What is pip?
Installing Packages
Listing & Uninstalling
Upgrading Packages
Why requirements.txt?
Creating requirements.txt
Installing from a File