Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Python's simple, easy to learn syntax emphasizes readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse.

Install and Setup

Python for Windows

Installing Anaconda Python for Windows

Navigation of Spyder

Stepping into the World of Python

Program Flow Control in Python

Lists, Ranges & Tuples in Python

The Binary number system explained

Python Dictionaries and Sets

Input and Output (I/O) in Python

Modules and Functions in Python

Object Oriented Python

Using Databases in Python

Generators, Comprehensions and Lambda Expressions

Introduction

Operator Precedence

Our First Python Program

The str String Data Type

Printing in Python

Negative Indexing in Strings

Printing text

Slicing

Printing the result of a calculation

Slicing with Negative Numbers

Strings in Python

Using a Step in a Slice

The Escape Character

Slicing Backwards

Printing tabs

Challenge Solution and Slicing Idiom

More on Escape Characters in Strings

String Operators

Variables and Types

String Replacement Fields

Python is a Strongly Typed Language

String Formatting

Numeric Data Types in Python

f-strings

Numeric Operators

Python 2 String Interpolation

Expressions

Section Summary

Integer division

Introduction to Blocks and Statements

if Statements

elif

Using a Debugger in Spyder

More on if, elif and else

if, elif, and else in the Debugger

Using if with strings

Simple condition

Adding a Second Guess

Conditional Operators

Challenge Solution

Using and, or, in Conditions

Simplify Chained Comparison

Boolean Expression True and False

Truthy Values

in and not in

if Challenge

Solution to if Challenge

for loops

Stepping through a for loop

for loops Extracting Values from User Input

Extracting capitals

For loop

More About Ranges

For loop with step

Nested for loops

continue

break

Initialising Variables and None

while loops

More on while loops

Break in a while loop

Break

Continue

The Random Module and Import

Challenge Solution

Binary Search

Hi Lo Game

Pass Statement and Complete the Hi Lo Game

Testing the Hi Lo Game

Augmented Assignment

augmented assignment in a loop

Refactoring Code

else in a loop

else in the Hi Lo Game

Conditional Debugging

Another else Example

Section Challenge Solution

Changing the Condition

End of Remaster

Flow Control Quiz

Set, Arrays & Matrix in Python

Introduction

Lists in Python

More about Lists

Challenge - Lists

Understanding Iterators

Understanding and using Ranges

More about Ranges

Ordered Sets with Tuples

More on Ordered Sets with Tuples

Lists, Ranges and Tuples

Dictionary and sets

Arrays

Matrix

system explained

Introduction to the Section

Binary Basics

What is binary

Hexadecimal and Octal and the Challenge

Python

Dictionaries and Sets

Introduction to the Section

Python Dictionaries

Dictionaries Part 2

Dictionaries Part 3

Dictionaries Challenge

More on Dictionaries

The Second Dictionary Challenge

Sets

Python Sets Part 2 and Challenge

Search & find all

Find & replace

The dot metacharacter

Caret & dollar metacharacter

Regex Objects and Grouping

Optional Matching and Findall()

Character Classes and the Caret and Dollar Characters

Greedy and Non-Greedy Matching

Case-Insensitive Matching and Substitutions

Character class

Star metacharacter

Group

Input and Output

(I/O) in Python

Introduction to the Section

Reading and writing text files

Writing Text Files

Appending to Files and Challenge

Writing Binary Files Manually

Using Pickle To Write Binary Files

Shelve

Manipulating Data With Shelve

Updating With Shelve

Shelve Challenge

Challenge Continued

Introduction to the Section

Parabola - More on Functions

Modules and import

Scope in Functions

The standard Python library

Fix Function and Draw Circles

WebBrowser Module

Enhanced Circles and Challenge

Time and DateTime in Python

Time (Continued) and Challenge.

Global Variables

Global Keyword

Timezones

Importing Techniques

Check Path In Windows

Underscores in Python code

Check Path on a Mac

Namespaces, more on Scope

and Recursion

Functions in Python

Recursion with OS Module and

Functions Part 2

Filesystem and Nonlocal keyword

Functions Part 3

Nonlocal keyword, Free and LEGB

File Handling In Python

Errors & exceptions in Python

Exception handling in Python

Finally block

File handling

Reading data from file

Adding data to the file

Appending to a file

Quiz for Section 4:

Coding challenge 5

Coding challenge 5 solution

Coding challenge 6

Coding challenge 6 solution

Web Scraping with BeautifulSoup

The Requests Module

Getting Started with BeautifulSoup

Attributes and Navigation

Accessing Attributes and Content

Siblings, Elements and Children

Object Orientated Programming

Remove Circular References

and Classes

Challenges

Instances, Constructors, Self

Getters and Setters

and more

Data Attributes and Properties

Class Attributes

Alternate Syntax for Properties

Methods Part 1

Inheritance

Methods Part 2

Subclasses and Overloading

Non Public and Mangling

Calling Super Methods

DocStrings and Raw Literals

Changing Behavior of Methods

Album class and More on

DocStrings

Overriding Methods

Artist class and import Albums

Inheritance Challenge

Load data and Write Checkfile

Polymorphism

Compare Files and Algorithm

Duck Test

Flowcharts

Composition

Composition Continued

Implement Revised Load_Data

Algorithm

Test Code and Challenge

Write OOP Version

Aggregation

Getters and Propertie

Introduction to Databases

Rolling back Transactions

Database Terminology

Adding Database code to the Account Class

Sqlite3 Install on Windows

GUI Database Editing Overview

Sqlite3 Install on a Mac

Ultimate Edition Database View

SQLite3 Install on Ubuntu Linux

Community Edition Database Plugin

Introduction to SQLite

Update Deposit and Withdrawal Methods

More with SQL using SQLite

Displaying Time in Different Timezones

Querying data with Sqlite

SQLite3 strftime Function

Challenge

Order by and Joins

Problems Storing Timezones

More complex Joins

Rolling Back Transactions

Wildcards and Views

Simple Database Browser

Housekeeping and the Challenge

Scrollbars

SQL in Python

Star Args

Connections, Cursors and Transactions

Kwargs

SQL Injection Attacks

More on KWArgs

Placeholders and Parameter

Scrollable Listbox

Substitution

Populating a Listbox from a Database

Exceptions

Show Songs from Album

Exceptions Challenge

The DataListbox Class Code

Exceptions Continued

Linking our DataListBoxes

Raising Exceptions

Linking our DataListBoxes Continued

More on Exceptions

DataListbox Challenge

Custom Exceptions

Section currently being added to regularly

Lambda Expressions

Introduction

Nested Comprehensions

Generators and Yield

Nested Comprehensions Challenge

Next and Ranges

The timeit Module

Generator Examples - Fibonacci

More on timeit

numbers and Calculating Pi

timeit Continued and Challenge

The os.walk Generator

timeit Challenge

Searching the Filesystem

Map Intro

Reading Mp3 Tags

Map Challenge Completion

List Comprehensions

The Filter Function

List Comprehensions and Side-Effects

The Reduce Function

Challenge Solutions

any and all

Conditional Comprehensions

Named Tuples

Conditional Expressions

any and all with Comprehensions

Challenges

Packages

Challenge 1 Solution

Virtual Environments

Challenge 2 Solution