We may earn an affiliate commission when you visit our partners.
Codestars • over 2 million students worldwide!, Jose Salvatierra, Rob Percival, and Teclado by Jose Salvatierra

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:

Read more

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

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.

Enroll now

What's inside

Learning objectives

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

Syllabus

Learn the fundamental building blocks of Python and apply them to manipulate user data!
Welcome to this course!
Overview of the course curriculum
Read more

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.

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.

Review what we've just learned!

Community & Support
Numbers in Python
Calculating the remainder of a division

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!

Information before your first coding exercise
Exercise: variables and numbers

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.

Python string formatting

String formatting questions to review what you've learned!

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!

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

Exercise: communicating with users (Python 3.10)
Exercise: dictionaries (Python 3.10)

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

and & or in Python

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

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.

Tuples in Python
Sets in Python

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.

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

Exercise: nearby friends (Python 3.10)

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!

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

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.

Iterating over dictionaries
Joining a list
Conclusion and Python Fundamentals Cheatsheet
Learn to repeat code and extract it into re-usable parts in this section!

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

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.

Exercise: a simple text menu (Python 3.10)

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.

Destructuring syntax

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.

A couple more loop examples

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

Exercise: FizzBuzz (Python 3.10)
The else keyword with loops
Finding prime numbers with for loops

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.

Comprehensions with conditionals

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

The zip function
The enumerate function

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

Exercise: an improved lottery! (Python 3.10)

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

Arguments and parameters

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!

Default parameter values

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

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

First-class functions in Python
Conclusion and Cheatsheets for this section

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

Gather all that we've learned and build our first project: a movie classification system
Code for this section

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.

Milestone Project Brief
Milestone Project Implementation Video
Truly understand what Object-Oriented Programming is all about!

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

Exercise: your first Python class (Python 3.10)

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

Exercise: defining a method (Python 3.10)

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

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

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.

Exercise: magic methods in Python (Python 3.10)

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!

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

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!

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

Errors in Python
Code samples for this section

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Starts with the fundamentals and progresses to advanced topics, which allows learners to build a strong foundation in Python programming
Covers web development with Flask, web scraping, Selenium, REST APIs, and Tkinter, which are useful for building real-world applications
Explores advanced Python concepts like decorators, asynchronous development, and managing project dependencies, which helps learners write professional-grade code
Includes quizzes, coding exercises, and Python projects, which provides learners with opportunities to apply what they've learned
Teaches how to use formatters and linters to improve code quality, which is essential for professional Python development
Covers Python 3.8 type hinting, which may not be relevant for learners using older versions of Python

Save this course

Save The Complete Python Course | Learn Python by Doing in 2024 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Complete Python Course | Learn Python by Doing in 2024 with these activities:
Review Python Fundamentals
Solidify your understanding of basic Python syntax and data structures before diving into more advanced topics.
Browse courses on Python Basics
Show steps
  • Review data types like integers, floats, and strings.
  • Practice using operators and control flow statements.
  • Familiarize yourself with lists, dictionaries, and tuples.
Review 'Python Crash Course'
Supplement your learning with a comprehensive guide to Python programming.
Show steps
  • Read the chapters covering fundamental Python concepts.
  • Complete the exercises and projects provided in the book.
  • Refer to the book as a reference guide throughout the course.
Review 'Automate the Boring Stuff with Python'
Supplement your learning with a comprehensive guide to Python programming.
Show steps
  • Read the chapters covering fundamental Python concepts.
  • Complete the exercises and projects provided in the book.
  • Refer to the book as a reference guide throughout the course.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Complete Basic Python Exercises
Reinforce your understanding of core Python concepts through hands-on coding exercises.
Browse courses on Python Programming
Show steps
  • Solve problems involving variables, data types, and operators.
  • Implement conditional statements and loops in various scenarios.
  • Write functions to perform specific tasks.
Build a Simple Calculator
Apply your Python knowledge to create a functional calculator that performs basic arithmetic operations.
Show steps
  • Design the user interface for the calculator.
  • Implement functions for addition, subtraction, multiplication, and division.
  • Handle user input and perform calculations accordingly.
  • Display the results to the user.
Create a Python Cheat Sheet
Compile a concise cheat sheet of essential Python syntax and concepts for quick reference.
Show steps
  • Identify the most important Python syntax and concepts.
  • Organize the information in a clear and concise format.
  • Include examples and explanations for each concept.
Contribute to a Python Project
Gain practical experience by contributing to an open-source Python project on GitHub.
Show steps
  • Find a Python project on GitHub that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete The Complete Python Course | Learn Python by Doing in 2024 will develop knowledge and skills that may be useful to these careers:
Python Developer
A Python developer specializes in coding using the Python programming language. This course is specifically designed to teach the Python language, and will help you become an proficient Python developer. The course covers a broad range of Python topics, including fundamental concepts and advanced techniques like decorators, asynchronous development, and managing project dependencies. The projects and exercises included in this course will enable you to make real Python applications, while also improving your Python code with formatters and linters, which are valuable tools used by Python developers.
Desktop Application Developer
A desktop application developer creates applications that run on desktop operating systems. This course covers how to create desktop applications using Python and Tkinter, which is a valuable skill for a desktop application developer. You’ll learn to develop professional Python code and create executable applications, which are important for this role. The course also has an emphasis on simplicity and good programming habits, which are traits of a capable desktop application developer.
Software Developer
A software developer writes code to create applications. This course will help you build a foundation in Python, enabling you to develop these applications. The course provides a comprehensive learning experience, including in-depth explanations using code-along videos, animated diagrams, quizzes, and coding exercises, which will all help you to become a capable software developer. You'll learn to write professional Python code, manage project dependencies and build full applications while also learning to embrace simplicity and good programming habits, all of which are important to the role.
Full-Stack Developer
A full stack developer works on both the front-end and back-end of applications. Learning Python through this course will help you build the backend skills necessary for a full stack developer. You will learn to create websites using Flask, manage project dependencies, and store data in databases. The course also covers web scraping and interacting with REST APIs, all of which are commonly used by full stack developers. This course will help you gain a grasp of Python, which will be valuable for your career as a full stack developer.
Backend Developer
A backend developer focuses on the server-side logic and databases of applications. This course can be a good start for those wanting to become a backend developer. The course covers web development with Flask, which is often used in backend development, and also teaches database interactions, an important skill for the role. The course additionally explores how to interact with REST APIs to fetch data. Overall, this course will provide many of the skills necessary for a backend developer role.
Quality Assurance Engineer
A quality assurance engineer tests software to ensure it meets quality standards. This course will help you begin a career as a quality assurance engineer, as it teaches unit testing in Python through the unittest library. Additionally, the course covers how to control browsers using Selenium to automate testing of websites. The course also helps to develop good programming habits, an important part of any development role, which includes that of a quality assurance engineer.
Web Developer
A web developer creates websites and web applications. This course can be quite useful if you aspire to be a web developer, especially if you want to use Python in your projects. This course teaches the basics of web development using Flask, allowing you to create websites and share them with others. Additionally, the course covers how to interact with REST APIs to fetch data from web applications, which is often a task of a web developer. Also, the web scraping and browser automation topics included in this course may also be helpful depending on your web development tasks.
DevOps Engineer
A DevOps engineer works to automate and streamline the software development process. This course helps establish a foundation in Python, which is a widely used language in DevOps. The course also explores automation and web scraping which are applicable to tasks in DevOps. The ability to use Python to interact with REST APIs and automate processes is useful to a DevOps engineer. The course may be a good starting point for someone aspiring to be a DevOps engineer, though further practical experience is often needed.
Automation Engineer
An automation engineer designs and implements systems that automate tasks. This course may be useful for an automation engineer, as it includes learning to control browsers using Selenium to automate website interactions. The course also teaches Python, which is often used in automation. Learning how to use Python to interact with REST APIs to fetch data may also be helpful for an automation engineer. The strong foundation in Python provided in this course will help you get started in this career.
Data Scientist
A data scientist analyzes complex data to derive insights. Although this course does not focus specifically on using Python for data analysis, it may be helpful as it provides a comprehensive overview of the Python programming language, which is often used in the field of data science. The course covers a wide range of Python topics and helps build a strong foundation in Python, including how to handle data with lists, dictionaries, and sets. Additionally, the database interactions and regular expressions explored in this course may have value. While further study is necessary, this course may be a good starting point for a career as a data scientist. A data scientist typically holds a master's or doctoral degree.
Data Engineer
A data engineer designs and builds systems for collecting, storing, and processing data. While this course does not focus specifically on data engineering practices, it may have value as Python is an important tool in the field. The course provides a comprehensive overview of Python, and will improve a data engineer's ability to write and maintain data processing systems. Specifically, the course’s coverage of database interactions, regular expressions, as well as interacting with APIs, may be particularly relevant to a data engineer.
Machine Learning Engineer
A machine learning engineer develops and implements machine learning models. Although this course does not teach machine learning techniques, it can be useful since it teaches Python, which is used to develop machine learning models. Machine learning engineers often have extensive programming knowledge. This course begins to build this knowledge by creating a strong foundation in Python through practical exercises and real-world examples, which will be important to succeed as a machine learning engineer. A machine learning engineer also typically holds an advanced degree.
Game Developer
A game developer creates video games. Although this course does not specifically delve into the unique requirements of game development, learning Python using this course can be useful because it helps build a foundation for coding in any application. The course teaches concepts that translate well to other languages and environments, and will aid in the use of Python in specialized game development contexts. Therefore, someone looking to become a game developer may find that this course helps them build a foundation.
Mobile Application Developer
A mobile application developer creates applications that run on mobile devices. While this course does not directly teach mobile application development, the course will help you to build a foundation with Python, which can be valuable when working with Python-based mobile frameworks. In particular, the course touches on object oriented programming, which is common in most programming paradigms, including mobile applications. A mobile application developer would typically also need experience with mobile-specific technologies, beyond this course.
Embedded Systems Engineer
An embedded systems engineer develops software for embedded systems. While this course does not directly focus on embedded systems, it may be helpful because it teaches Python fundamentals and programming practices, which are helpful for any role that requires programming. Learning the basics of programming in Python can also be helpful to a career in embedded systems engineering as it provides a foundation. An embedded systems engineer may also typically need to understand hardware and low-level programming.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features The Complete Python Course | Learn Python by Doing in 2024:

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Complete Python Course | Learn Python by Doing in 2024.
Python Crash Course fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you'll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. is commonly used as a textbook at academic institutions.
Automate the Boring Stuff with Python teaches you how to use Python to write programs that do in minutes what would take you hours to do by hand—no prior programming experience required. You'll learn the basics of Python and explore Python's rich library of modules for performing specific tasks, like scraping data off websites, reading PDF and Word documents, and automating clicking and typing tasks. is more valuable as additional reading than it is as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser