The Complete Python Course | Learn Python by Doing
4.6 (8,275 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
32,172 students enrolled

The Complete Python Course | Learn Python by Doing

Go from Beginner to Expert in Python by building projects. The best investment for your Python journey!
4.6 (8,275 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
32,172 students enrolled
Last updated 5/2020
English
English, Portuguese [Auto-generated], 1 more
  • Spanish [Auto-generated]
Current price: $125.99 Original price: $179.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 35 hours on-demand video
  • 53 articles
  • 13 downloadable resources
  • 26 coding exercises
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • From foundations to expert, learn about every major Python topic, working with Python 3.
  • Write professional-grade Pythonic code with all the best practices and avoiding common pitfalls.
  • Master Object-Oriented Programming and structure your Python programs like a professional.
  • Swiftly understand complex topics like decorators, algorithms, and asynchronous programming in Python.
  • Automate extracting data from websites using web scraping libraries like BeautifulSoup and Selenium.
  • Learn how to write desktop applications with Python and Tkinter.
  • Interact with REST APIs using Python and build a currency converter!
  • Develop a life-long love for programming with Python!
Course content
Expand all 342 lectures 35:18:31
+ Intro to Python
24 lectures 01:37:31

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.

An added bonus is that you can always share your code with the instructor team and we can very easily help you out if you have doubts or encounter any problems.

Preview 02:28

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.

Preview 04:05

Review what we've just learned!

Variables and printing
4 questions
Calculating the remainder of a division
04:09

Practice what you've just learned about numbers and printing things out to the user in Python in this quiz. There's just a couple questions—I'm sure you can do it!

Numbers and Printing in Python
6 questions
Information before your first coding exercise
00:56
Exercise: Variables and Numbers
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: variables and numbers
00:38

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.

Preview 06:57
Python string formatting
07:08

String formatting questions to review what you've learned!

Python string formatting
6 questions

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!

Getting user input in Python
08:07

Double-check what you've learned about strings, string formatting, and user input with this quiz.

Python strings, formatting, and user input
3 questions
Exercise: communicating with users
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: communicating with users
00:26

In this lecture we look at True and False values in Python. These are very important, because they allow our programs to make decisions.

Booleans and comparisons in Python
04:26
and & or in Python
08:50

Recap what we just covered on booleans and comparisons in this short quiz!

Booleans and comparisons in Python
6 questions

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.

Lists in Python
08:05
Tuples in Python
05:29
Sets in Python
02:45

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.

Advanced set operations
04:51

Practice your knowledge of lists, tuples, and sets in this quiz covering Python fundamentals and set operations.

Lists, tuples, and sets in Python
6 questions
Exercise: nearby friends
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: nearby friends
00:20

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!

Python dictionaries
07:46

Dictionaries are extremely important in Python. Review what you've learned in this short quiz!

Python dictionaries
4 questions

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.

Length and sum
02:47
Exercise: dictionaries
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: dictionaries
00:46
Joining a list
02:04
+ Python fundamentals
24 lectures 02:07:33

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.

If statements in Python
12:21

Review your knowledge of if statements with a few code questions!

If statements in Python
2 questions

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.

While loops in Python
06:14
Exercise: a simple text menu
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: a simple text menu
00:35

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.

For loops in Python
07:27
Destructuring syntax
03:19
Iterating over dictionaries
02:29

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.

Break and continue
04:11
A couple more loop examples
00:27

Review your knowledge of loops, both while and for, in this quiz with some code questions!

Loops in Python
6 questions
Exercise: FizzBuzz
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: FizzBuzz
00:36
The else keyword with loops
03:48
Finding prime numbers with for loops
05:35

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.

List slicing in Python
04:02

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.

List comprehension in Python
09:02
Comprehensions with conditionals
06:16

In this lecture we look briefly at using comprehensions in other data structures, like sets and dictionaries.

Set and dictionary comprehensions
05:07
The zip function
02:42
The enumerate function
04:43

Review your knowledge of list comprehension and slicing in Python with these code questions.

List comprehensions and slicing in Python
4 questions
Exercise: an improved lottery!
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: an improved lottery!
00:54

In this lecture we take a look at functions in Python.

Functions in Python
04:10
Arguments and parameters
10:15

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!

Functions and return values in Python
09:25
Default parameter values
07:26

Review your knowledge of functions in Python with these code questions.

Functions in Python
4 questions

In this lecture we look at lambda functions in Python. These are used to get inputs, and succinctly process them before returning them.

Lambda functions in Python
06:08
First-class functions in Python
10:19

Recap of the more advanced functions in Python with code questions about lambda functions, first-class functions, and higher-order functions.

Advanced functions in Python
5 questions
+ Milestone Project 1
7 lectures 32:55
Code for this section
00:12

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.

Installing Python in your computer
02:18

In this lecture we look at installing PyCharm. Again a simple process! PyCharm allows us to write and run Python code easily.

Installing PyCharm in your computer
02:56

In this video we create our first PyCharm project!

Creating our first PyCharm project
05:45

A short aside from the main content of the course; just a quick video on changing PyCharm's settings to suit you.

Setting up PyCharm font and display settings
02:44
Milestone Project Brief
07:27
Milestone Project Implementation Video
11:33
+ Object-Oriented Programming with Python
12 lectures 01:18:04

This lecture introduces object-oriented programming! Objects allow our programs to start talking about real-world things in a better context.

Intro to Object-Oriented Programming with Python
17:02
Exercise: your first Python class
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: your first Python class
00:18
Exercise: defining a method
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: defining a method
00:22

Learn more about classes and objects in this lecture. What is self? What is it used for?

More about classes and objects
09:17

A quick article lecture on what built-in functions are, a few more examples, and where you can read more about them.

So... sum(), int(), str(), len(), what else is there?
00:36

Recap your knowledge of object-oriented programming with these code questions!

Object-Oriented Programming
4 questions

This brief interlude talks about how to name your parameters in Python programs.

Parameter naming in Python
03:54

In this lecture we talk about some magic methods in Python, like what __init__ and __repr__ are for.

Magic methods in Python
12:57
Exercise: magic methods in Python
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: magic methods in Python
01:01

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!

Inheritance in Python
08:45

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!

The @property decorator
04:19

Let's review some more advanced object-oriented programming concepts, such as inheritance and magic methods, in this quiz!

Advanced Object-Oriented Programming
5 questions

In this lecture we talk about the purpose of the @classmethod and @staticmethod decorators.

@classmethod and @staticmethod in Python
07:27

Because @classmethod and @staticmethod can be a bit confusing, here's a few more examples of them in use!

More @classmethod and @staticmethod examples
12:06

@classmethod and @staticmethod can be quite confusing, particularly at the start. Let's review them in this quiz.

@classmethod and @staticmethod
2 questions
+ Errors in Python
13 lectures 01:50:01
Code samples for this section
00:13

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!

Intro to errors in Python
13:13

In this lecture we look at some of the built-in errors in Python and what they can be used for.

Built in errors in Python
17:58

Why can errors be helpful? Review what we've learned about errors in Python with this code-based quiz!

Errors in Python
3 questions

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!

Raising errors in Python
10:58
Exercise: raising an error
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: raising an error
00:27

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.

Creating our own errors in Python
13:42
Exercise: raising out own custom errors
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: raising our own custom errors
00:34

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.

Dealing with Python errors
09:00

Handling and using errors as applications get larger is a very popular practice in Python. Let's review what we've learned in this quiz!

Error handling in Python
3 questions

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!

The on success block and re-raising exceptions
11:21

This quiz will help you review everything we've looked at in the Errors section so far—by finding problems and issues with blocks of code.

Some error problems
6 questions

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!

Handling those pesky user errors!
14:55
Exercise: try-except-finally
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: try-except-finally
00:33

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!

Debugging with Pycharm
16:37

We've covered some advanced error handling, including on-success blocks. Let's review what we've learned!

Advanced error handling in Python
4 questions
Further reading
00:28
+ Files in Python
15 lectures 01:43:24
Code for this section
00:12

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!

Files in Python
10:55

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.

Python Exercise: copying files
20:38
Exercise: building a quiz system
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: building a quiz system
00:36

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!

CSV files with Python
09:35
Exercise: a CSV to JSON converter
1 question
How to use the csv module to read and write CSV files more easily
00:30

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!

JSON files with Python
17:33
Exercise: a CSV to JSON converter
1 question

This short article provides a solution to the coding exercise, just so you can double-check your code against it!

Solution: a CSV to JSON converter
00:22

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.

Using the with syntax in Python
05:01

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!

Importing our own files
10:28

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.

Python relative imports: children
15:18
Exercise: importing modules
1 question
Exercise importing modules
1 question
Solution: importing modules
00:36

In this video we cover doing relative imports to import a parent module. This can be even trickier than importing child modules!

Python relative imports: parents
05:44

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.

Import errors and running as a Python script
05:26
Further reading
00:29
+ Databases in Python & Milestone Project 2
20 lectures 02:04:44
Code for this section
00:12

In this lecture we introduce the next milestone project!

Intro to Milestone Project 2
05:53

This lecture contains the second milestone project brief—a document with some hints on how you can tackle your second assignment!

Milestone Project 2 Brief
00:25
Milestone Project with lists
17:52
Storing books in files
19:30
Using JSON instead of CSV
09:58
Intro to databases with Python
07:03
Using SQLite in Python
02:37
Some database jargon
04:08
Creating our books table using Python
05:49
Inserting books using Python
06:19
SELECT examples
03:12
Getting all our books
06:30
UPDATE and DELETE
02:14
Filtering with WHERE
04:59
Finishing the Milestone Project
07:46
Ordering and limiting
02:37
Developing our context manager in Python
10:11
Errors in context managers
06:55
Further reading
00:33
+ Type hinting in Python
2 lectures 13:54
Typing in Python
12:10
Further reading
01:44
+ Advanced built-in functions in Python
10 lectures 50:00
Generators in Python
12:39
Exercise: a prime number generator
1 question
Solution: a prime number generator
00:25
Python generator classes and iterators
08:15
Exercise: coding a generator class
1 question
Solution: coding a generator class
00:32
Iterables in Python
07:48
The filter() function in Python
08:43
The map() function in Python
05:39
any() and all() in Python
04:59

Review the knowledge we've acquired in this section with these questions!

Section 9 Review
8 questions
So what other things evaluate to True or False?
00:36
Further reading
00:23
+ Advanced Python Development
20 lectures 02:51:27
Mutability in Python
11:49
Argument mutability in Python
12:16
Default values for parameters
05:03
Mutable default arguments (bad idea)
06:38
Argument unpacking in Python
11:16
Queues in Python
03:20
Some interesting Python collections
25:55
Exercise: Python collections
1 question
Solution: Python collections
00:28
Timezones
08:46
Dates and time in Python
12:46
Timing your code with Python
12:32
Regular expressions
08:28
Regex examples
13:36
Regex in Python
13:07
Exercise: secure file names using regex
1 question
Solution: secure file names using regex
00:24
Introduction to logging in Python
10:35
Logging to a file and other features
04:16
Higher-order functions in Python
09:37
The built-in itertools module
00:22

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.

Further reading
00:12
Requirements
  • Access to a computer with an internet connection. Everything else we use in the course is publicly available and we'll guide you through getting it.
  • There are no other requirements, besides getting started!
Description

Welcome to the Complete Python Course!

***Fully updated for 2020*** The course covers every major Python topic (including Object-Oriented Programming, Web Scraping, and even GUI development), and now includes even more content...!

NEW CONTENT:

  • Control your browser using Selenium, to scrape websites or even fill in forms!

  • Learn to interact with REST APIs and build a currency exchange program

  • Create desktop GUIs using Tkinter, so your users can work with your applications very easily

  • Start working with unit testing in Python by learning about the unittest library

We've also completely re-recorded the course's introductory Python material... so it’s even clearer and more straightforward!


This course will take you from beginner to expert in Python, easily and smartly. We've crafted every piece of content to be concise and straightforward, while never leaving you confused. This course will dive right into Python and get you productive from the very beginning. 

This is the best investment you can make in your Python journey.

Why Learn Python?

Over the last few years, Python has become more and more popular. Demand for Python is booming in the job market and it is a skill that can help you enter some of the most exciting industries, including data science, web applications, home automation and many more. Python is one of the "most loved” and “most wanted” programming languages according to recent industry surveys. If people are not using Python already, they want to start using Python. 

This course will make it easy for you to learn Python and get ahead of your competition. 

Why Choose THIS Course?

You will:

  • 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.

  • Develop a long-lasting love for Python and programming by creating good programming habits.

  • Explore the wider possibilities of what you can do with Python, including databases, web development and web scraping.

  • Become job-ready by learning about best practices, Selenium, unit testing, and all of the major Python topics.

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 250 lectures covering all aspects of Python, from the foundations to advanced concepts. 

  • An interactive screencast video from every lecture AND complete, written notes and code for you to read and refer back to you 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.

  • Guidance on common pitfalls and best practices including how to make your code "Pythonic" (looking like professional code), Object-Oriented Programming, database interactions, and more.

  • Quizzes and tests for you to check your understanding.

  • High-quality help and support. In the last year alone we've answered over 3000 student questions. We don’t leave a single question unanswered.

Don't Wait! Join the Course and Begin Coding in Python today!

You'll have 30 days to change your mind and get your money back, with absolutely no questions asked AND you'll get to keep all the course notes and code as a thank you for trying the course out.

Who this course is for:
  • Beginner programmers who want to get into one of the most popular and loved languages in the world
  • Programmers from other languages who want to kickstart their Python journey
  • Python programmers who want to refresh their skills and tackle advanced topics like algorithms and asynchronous programming