Fundamentals of Python

Master the fundamentals of Python with over 20 hours of video, hundreds of pages of formal text, hundreds of exercises, multiple projects and detailed solutions. 

Master the Fundamentals of Python

Gain a deep understanding of the Python programming language by learning all the precise details and best practices from expert instructor Teddy Petrou.

Comprehensive Videos and Text

This is a comprehensive course consisting of video lessons and 200+ pages of formal text with precise details and best practices for using Python. Each topic is covered thoroughly so that you too can become an expert.

Exercises and Projects

Reading texts or listening to lectures give the false impression of learning. To demonstrate learning, you must be able to complete tasks on your own. The Fundamentals of Python course comes with 150+ exercises and detailed solutions along with several longer and more complex projects.

Python Certification

This course lays the foundation for earning certifications through the Python Institute. You will be given practice exams to help prepare for the official exam.

Course Contents


Python Installation

You will be given detailed instructions on how to install python onto your machine and set up an environment to run all the code within the book.

Jupyter Notebooks

We will be using the excellent (though still needing improvement) Jupyter Notebook to run most of the code. It provides an interactive coding environment to quickly execute code, get feedback, and make notes.

Basic Types

Every value in Python is an object and all objects have a type. We begin by learning how to create 'basic' types such as booleans, integers, and floats.


The simplest and most straightforward actions we can perform with these basic types are with operators. Most operators are one or two non-alphanumeric symbols that use two values (arguments) to produce a new value. You will learn about arithmetic, comparison, and boolean operators.

Variable Names

In order to reuse the result of an operation, we need to save the result. In python, we use assignment statements to assign this result to a name. We refer to these names as variables or variable names.


Strings are a more complex type of object and consist of a sequence of characters. Strings are the first types of objects where we use methods to harness their power. We also learn about how to select subsets of strings using slice notation.


Lists are sequences that may contain any number of other objects of any type. They are an important data structure used frequently in most python programs and are mutable (able to be changed).

Ranges and Constructors

Ranges are the first types of objects covered that cannot be constructed as a literal. You will learn how to create a range with its constructor and then learn how to create all of the previous types covered their own constructor.

Control Flow

Normal flow of python programs occurs by executing the very next line of code under the current line beginning at the top. We can change this normal flow with if/else statements and for/while loops. You will learn from practical examples, such as simulating a game of Craps.


Functions allow us to reuse an entire block of code by labeling it with a name. They help avoid repeating the same code over and over. You will learn how to use several built-in functions as well as how to create user-defined functions.  

Tuples, Sets, and Dictionaries

Python has several flexible built-in data structures that give us tremendous power to complete many tasks without the need to build them ourselves. Tuples, sets, and dictionaries are all different containers of data that we will explore.

Python Modules

Up until this part of the course, all of our Python commands have come from parts of the language that are built-in and immediately available to the interpreter. The standard library, which comes shipped with every Python installation, has many modules that contain more objects to enhance our programs. You will learn how to access these other objects with import statements. You will also learn how to develop your own modules. (upcoming)


Exceptions are raised during a program whenever execution of the program is unable to continue. You will learn about the built-in exceptions, what they usually refer to, and how to raise exceptions in your own programs.


Reading and writing data to an external file is a less-frequent but still important command. You will learn how to read and write files with the built-in `open` function.


Although you can write complex programs by only using the built-in types, you can write much more effective programs by using classes to create your own types. You will learn how to make use of special methods to make your objects integrate with the built-in python operators and functions.

Intelligent Texas Hold'em Poker

As a capstone project you'll build an interactive and intelligent Texas Hold'em Poker application. This project will put all of the course knowledge together into a single comprehensive piece of software.

About the Instructor

This course is taught by Teddy Petrou, an expert at Python, data exploration and machine learning. Teddy is the author of the highly rated text Pandas Cookbook. Teddy has taught hundreds of students Python and data science during in-person classroom settings. He sees first hand exactly where students struggle and continually upgrades his material to minimize these struggles by providing simple and direct paths forward.

Teddy is one of the foremost authorities on using the pandas library to do data analysis. His blog posts have totaled well over 1 million views. He is also a prolific contributor on Stack Overflow having answered over 400 questions.

Teddy holds a master's degree in statistics from Rice University and is the author of Master the Fundamentals of Python and Master Data Analysis with Python.


50% Complete

Two Step

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.