Overview of the Course Curriculum
Our Python Coding Environment
Writing the First Code! Variables and Printing
Calculating the Remainder of a Division
Getting a User Input in Python
Booleans and Comparisons in Python
Iterating over Dictionaries
The Else Keyword with Loops
Finding Prime Numbers with For Loops
List Comprehension in Python
Comprehensions with Conditional Statements
Set and Dictionary Comprehensions
Functions and Return Values in Python
Lambda Functions in Python
First Class and Higher Order Functions
Installing Python on your Computer
Installing PyCharm on your Computer
Creating the First PyCharm Project
Setting up the PyCharm Font and Display Settings
Milestone Project Implementation
Finding Movies and Retrieving Details
Intro to Object-Oriented Programming with Python
More about Classes and Objects
Parameter Naming in Python
The @classmethod and @staticmethod Decorators in Python
More @classmethod and @staticmethod Examples
Intro to Errors in Python
Built-in Errors in Python
Creating Errors in Python
Dealing with Python Errors
The On-success Block and Re-raising Exceptions
Python Exercise: Copying Files
Using the “with” Syntax in Python
Python Relative Imports: Children
Python Relative Imports: Parents
Importing Errors and Running as a Python Script
Intro to Milestone Project 2
Milestone Project with Lists
Using JSON instead of CSV
Intro to Databases in Python
Creating Books Table Using Python
Inserting Books Using Python
UPDATE and DELETE Statements
Filtering using the WHERE Clause
Finishing the Milestone Project
Developing the Context Manager in Python
Errors in Context Managers
Argument mutability in Python
Default values for parameters
Mutable default arguments (bad idea)
Argument unpacking in Python
Some interesting Python collections
Timing your code with Python
Introduction to logging in Python
Logging to a File and Other Features
Understanding HTML with BeautifulSoup
More Complex HTML Parsing
Structuring Parsing Program Better
Splitting HTML Locators out of the Python Class
Understanding HTML with the Browser
Scraping the First Website with Python
Milestone Project 3: A Quote Scraper
Quotes Project 2: Structuring a Scraping App in Python
Quotes Project 3: Getting Locators
Quotes Project 4: Crafting a Quote Parser
Quotes Project 5: The Quotes Page
Quotes Project 6: Recap of the Project
Milestone Project 4: A Book Scraper + Application
Books Project 2: Recap of HTML Locators
Books Project 3: Creating Locators in Python
Books Project 4: Creating a Page
Books Project 5: Creating a Book Parser
Books Project 6: Writing an App File
Books Project 7: Sorting the Books
Books Project 8: Constructing a Menu
ASIDE: The Best Way to Write User Menus
Books Project 9: Getting Multiple Pages
Books Project 10: Multiple Pages in Python
Books Project 11: Getting the Page Count in Python
Books Project 12: Adding the Logging Module to a Python Project
A Word on Scraping Pages with JavaScript
Introduction to this Section
Review of Quotes Scraping Code
Using Chrome in Scraping Code
Interacting with Drop-downs
Encapsulating Logic More Simply
Implicit and Explicit Waits in Selenium
Adding Waits to a Program Code
The Dining Philosophers Problem
The Python Global Interpreter Lock (GIL)
Example: Threads in Python
Using Python concurrent.futures with the ThreadPoolExecutor
Multiprocessing in Python
Using Python concurrent.futures and the ProcessPoolExecutor
Dealing with Shared State in Threads
Queuing in Threads with Shared State
Using Python Generators Instead of Threads
First Single-threaded Task Scheduler in Python
Yielding from Another Iterator in Python
Receiving Data Through Yield
The Async and Await Keywords
More explanations and examples
Making the First Async Request in Python
Retrieving Multiple Pages Efficiently
Using the async_timeout for Security
Turning our Book Scraping Project async
HTTPS with Python and Mac OS X
Setting up Project with Pipenv
Returning Information with Flask and Pythons
Rendering HTML with Flask and Python
Error Pages and Jinja2 Inheritance
Rendering Forms with Flask and Python
Accessing POST Form Data with Flask
Adding a Form in a Single Endpoint
Using Jinja2 For Loops to Create a Nice Homepage
Adding Website Navigation
Signing up for Openexchangerates
Getting All Exchange Rates from the API
Creating a Currency Exchange Library
Caching Functions with Functools
Performing TTLCache with Cachetools
A Simple Decorator in Python
Functools Wraps in Python
Decorating Functions with Parameters
Decorators with Parameters
Functions that Accept Multiple Arguments
Using Generic Decorators for any Function
Using Frames for Different Layouts
Starting the Text Editor Project
Tkinter Notebooks and Creating Files
Adding a Menu to an Application
Binding Shortcuts in Tkinter
Checking Tabs for Unsaved Changes
Confirming Exit with Unsaved Changes
Adding a Permanent Scrollbar to the Text Area
Introduction to this Section
Testing the Multiplication Function
Writing a Printer Class for Testing
Testing External Libraries
Conclusion of this Section
Presentation: Queues Stacks and Complexity
Presentation: Binary Search
Presentation: Binary Trees
Presentation: Traversal of Binary Trees
Presentation: Adding Elements to a Binary Tree
Adding Elements to a Binary Tree in Python
Recursion and In order Traversal in Python
Finding Nodes in a Tree with Python
Deleting Nodes from a Binary Tree
Deleting Nodes in Code with Python
Deleting Nodes with Two Children in a Code
Python Libraries Overview
Sending E-mails with smtplib
Sending E-mails with Mailgun
Creating a Re-usable Mailgun Library
Sneak Peek: Integrated Development Environment (IDE) Setup
String Formatting in Python
If Statements with the “in” Keyword
Function Arguments and Parameters
Functions Returning Values
Lambda Functions in Python
Dictionary Comprehensions
Unpacking Keyword Arguments
Object-Oriented Programming in Python
Magic methods: __str__ and __repr__
Class Methods and Static Methods
Importing Files in Python
Relative Imports in Python
Simple Decorators in Python
The “at” Syntax for Decorators
Decorating Functions with Parameters
Decorators with Parameters
Mutable Default Parameters