
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Installing all required software at the start of the course can be quite boring. Instead, in this course we'll dive right into Python by using a great cloud environment where you can type and run your Python code.
Let's start the course by talking about one of the fundamental types of data in Python: numbers. We can have whole numbers (known as integers) and also numbers with decimal places (known as floats).
In this lecture we also talk about how to communicate with the user by printing things out.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we talk about strings in Python. Strings are just collections of characters, numbers, and symbols. We also talk about how to use existing variable in strings to make them more dynamic.
In this lecture we talk about how to get the user to give us data. Programming is all about taking data and transforming it. We now know how to tell the user things, we must get the user give us things!
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we look at True and False values in Python. These are very important, because they allow our programs to make decisions.
In this lecture look at how we can store multiple values in the same variable, by using built-in structures like the list, tuple, or set. These are all different and can be used in different scenarios.
Sets in particular can be extremely powerful. In Python, we can use sets to calculate elements that match in two collections and also to perform other, related operations.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
The Python dictionary is one of the most useful structures in the language. It allows us to map values to keys—for example, "name" to "Rolf". With dictionaries, we can make our programs start talking about things as opposed to just pieces of data!
In this lecture we look at how to calculate the length and the total sum of elements in a list, tuple, or dictionary in Python.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we talk about if statements. If statements are Python constructs which, given a True or False value, can change the flow of our programs.
In this lecture we look at while loops. The while loop is a type of construct which allows our programs to repeat a certain block of code for as long as a conditional is True.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we talk about the for loop, as well as the range() function and a brief aside on tuple destructuring. The for loop is great for doing something with each item of a collection, such as a list.
In this lecture we talk about two parts of the Python syntax which we can use inside loops: break and continue. These can be used to exit out of a loop early in two different ways.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we talk about list slicing. You can create list slices from existing lists, just by providing a range of indices that you want your new list to contain.
In this lecture we talk about list comprehension. List comprehension creates a new list from an existing list, but we have the opportunity of choosing what elements to include. In addition, we can perform transformations on new elements.
In this lecture we look briefly at using comprehensions in other data structures, like sets and dictionaries.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we take a look at functions in Python.
In this lecture we investigate how to make our functions give back values so that the caller of the function can use them. This is a key pillar of programming!
In this lecture we look at lambda functions in Python. These are used to get inputs, and succinctly process them before returning them.
In this brief lecture we look at installing Python in your computer. It's very simple, just download the installer and go through it. Windows users need to make sure to select specific settings, however.
In this lecture we look at installing PyCharm. Again a simple process! PyCharm allows us to write and run Python code easily.
In this video we create our first PyCharm project!
A short aside from the main content of the course; just a quick video on changing PyCharm's settings to suit you.
This lecture introduces object-oriented programming! Objects allow our programs to start talking about real-world things in a better context.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
Learn more about classes and objects in this lecture. What is self? What is it used for?
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
A quick article lecture on what built-in functions are, a few more examples, and where you can read more about them.
This brief interlude talks about how to name your parameters in Python programs.
In this lecture we talk about some magic methods in Python, like what __init__ and __repr__ are for.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we talk about inheritance, and in which situations it can be handy. When we do inheritance, a class takes absolutely everything from another one—but then we can change anything we want in the new class!
A slightly more advanced concept, in this video we briefly look at accessing a method as property using the @property decorator. Decorators though, will be covered in length later on!
In this lecture we talk about the purpose of the @classmethod and @staticmethod decorators.
Because @classmethod and @staticmethod can be a bit confusing, here's a few more examples of them in use!
In this lecture we look at errors in Python. These can be confusing and annoying, but when you know how to use them they become very powerful!
In this lecture we look at some of the built-in errors in Python and what they can be used for.
In this lecture we look at how to raise errors in Python; crashing our application. Sounds pointless, but it can actually be really good to crash an application when critical errors happen!
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we look at how to create our own errors in Python. This allows us to give them more descriptive names and properties, that we can use when debugging.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we look at try-catch, a construct in Python for dealing with errors. Instead of crashing an application, we can do something to handle the error and then continue execution.
In this lecture we look at the "on success" block on the try-catch construct. It is a lesser-known keyword, which allows us to use an "else" with a try-catch!
In the last quiz we saw multiple incorrect ways of handling user input—let's look at why, and also at the best way of tackling the problem!
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
This longer lecture looks at using the PyCharm debugger in order to step through our programs and find problems. Debugging is an essential skill for any developer!
In this lecture we introduce working with files in Python. Files are a great way to save data from our programs, but also we can make our programs read from them!
Let's do a short exercise in this lecture: copying a file. The great thing about doing this with Python is that we can then modify the output file—so we could selectively copy or change some of the values.
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
CSV files are extremely popular to save data that looks like a table. In this lecture we look at how to interact easily with CSV files in Python!
In this lecture we look at JSON files. JSON is a very popular format for files and for data sent over the internet. An added benefit is that JSON looks a lot like Python dictionaries!
This short article provides a solution to the coding exercise, just so you can double-check your code against it!
In this lecture we look at the `with` syntax in Python. This is called a context manager, and allows us to perform an operation at the start and another at the end of a block of code.
In this lecture we look at how to import our own files. Doing this means that we can split our program into various files, to make it simpler!
A rather complex and less known topic! Relative imports in Python can be tricky to get right, but in this lecture we teach you exactly how to use relative imports in Python to import child modules.
In this video we cover doing relative imports to import a parent module. This can be even trickier than importing child modules!
In this lecture we look at import errors, which can happen when we have circular dependencies. We also look at how to run a file as a script, and what that means.
In this lecture we introduce the next milestone project!
This lecture contains the second milestone project brief—a document with some hints on how you can tackle your second assignment!
This lecture contains a link to an interesting conference talk, related to memory management and garbage collection—similar to the first couple lectures in this section.
Welcome to the Complete Python Course!
Learn Python from a software developer. If you want to master Python and write efficient, elegant, and simple code, this is the course you've been looking for!
Even if you have no programming experience, this course will give you a super-strong foundation and teach you how to use Python to achieve any goal.
We've crafted every piece of content to be concise and straightforward, while never leaving you confused:
Hundreds of code-along videos with in-depth explanations
Dozens of presentations with animated diagrams
Quizzes
Coding exercises
Python projects for you to learn to make real Python applications
Why Choose THIS Course?
Get a broader and deeper experience in Python than with any other Udemy course on the market.
Start at zero and become an expert whilst learning all about the inner workings of Python.
Learn how to write professional Python code like a professional Python developer.
Embrace simplicity and develop good programming habits.
Explore advanced Python, such as decorators, asynchronous development, and managing project dependencies
Improve your Python code with formatters and linters
Store data in a database so it's accessible and searchable.
Learn about web development using Flask, to create websites that you can share with users.
Extract information from existing websites using web scraping.
Control your browser using Selenium, to automate using almost any website!
Learn to interact with REST APIs to fetch data from other web applications.
Create desktop GUIs using Tkinter, and turn them into executable applications you can share with non-technical users.
Start working with unit testing in Python by learning about the unittest library
Who Is This Course For?
Beginners who have never programmed before.
Programmers with experience in other languages who want to kickstart their Python programming.
Programmers who know some Python but want to round off their skills and become truly proficient.
What Am I Going to Get From This Course?
Lifetime access to over 300 code-along lectures covering all aspects of Python, from the foundations to advanced concepts.
Complete written notes and code for you to read and refer to as you progress through the course.
Milestone projects for you to complete throughout the course. These provide a challenge and an opportunity for you to apply what you've learned. We always go over the code after to show you how we would tackle them.
Quizzes and coding exercises for you to check your understanding.
High-quality help and support. Every year we personally help thousands of students. We don’t leave a single question unanswered.
Here's a breakdown of some of the topics this course covers!
Command Line Basics
Installing Python
Running Python Code
Strings and Numbers
String Formatting
Lists, Dictionaries, Tuples, and Sets
Functions and lambdas
Decorators
Scope
args/kwargs and default parameter values
The concept of mutability
Built-in Functions
Debugging and Error Handling
Type hinting (new in Python 3.8)
Creating your own error classes
Modules and installing libraries
Object Oriented Programming, in a lot of depth
Composition and Inheritance
File I/O
Database interactions
Unit testing
Regex (Regular Expressions)
Web Scraping
Algorithms and Data Structures
And much, much more!
Feel free to read through the course curriculum, as well as watch the free lectures of this course. I'm sure you'll enjoy them.
But don't take my word for it! Read through some of these reviews and see what other students are saying:
> "Excellent teaching ability combined with deep understanding of the subject has produced one of the best online courses I've taken in decades. Fabulous work! Thank you!" - Maria Iano
> "Really amazing course. would recommend to all the students or programmers who want to learn python from scratch." - Hriday Panchal
> "Exactly the course I needed!!! Explanations are clear, lots of examples, and everything you need in python! thanks so much." - Julien Palleau
> "Another amazing offering from Jose. This course offers the most comprehensive look at Python available. Consider, for example, the extensive treatment regarding asynchronous development, or the detailed introduction to web development with Flask, or the Tkinter GUI introduction. I have had several other offerings by Jose here on Udemy. Always get far more than I expected." - Martin Dwyer
> "Honestly, I don’t know much about other courses, but after taking a quick peek at some of them, I can safely say that this is the most complete Python course in Udemy. [...] Definitely recommended for those who want to begin their Python journey but don’t know where to start." - Mateo Delgadillo Karam
This course is eligible for the Codestars Certificate Authority (CCA) certificate. Students can take the official exam via codestarscom, and those who pass the quiz will receive their CCA certificate. (more details in the course!)
Also remember: we have a 30-day money-back guarantee, so sign up and try the course totally risk-free!
I'll see you on the inside.