The Complete Python Course | Learn Python by Doing

35h 20s
English
Paid

Course description

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.

Read more about the course

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.

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

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

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!

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 289 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online The Complete Python Course | Learn Python by Doing

0:00
/
#1: Welcome to this course!

All Course Lessons (289)

#Lesson TitleDurationAccess
1
Welcome to this course! Demo
02:29
2
Overview of the course curriculum
02:49
3
Our Python coding environment
02:29
4
Writing our first code! Variables and printing
04:06
5
Community & Support
06:01
6
Numbers in Python
03:11
7
Calculating the remainder of a division
04:10
8
Information before your first coding exercise
00:57
9
Python strings
06:58
10
Python string formatting
07:09
11
Getting user input in Python
08:08
12
Booleans and comparisons in Python
04:27
13
and & or in Python
08:51
14
Lists in Python
08:06
15
Tuples in Python
05:30
16
Sets in Python
02:46
17
Advanced set operations
04:52
18
Python dictionaries
07:47
19
Length and sum
02:48
20
Joining a list
02:05
21
If statements in Python
12:22
22
While loops in Python
06:15
23
For loops in Python
07:28
24
Destructuring syntax
03:20
25
Iterating over dictionaries
02:30
26
Break and continue
04:12
27
The else keyword with loops
03:49
28
Finding prime numbers with for loops
05:36
29
List slicing in Python
04:03
30
List comprehension in Python
09:03
31
Comprehensions with conditionals
06:17
32
Set and dictionary comprehensions
05:08
33
The zip function
02:43
34
The enumerate function
04:44
35
Functions in Python
04:11
36
Arguments and parameters
10:16
37
Functions and return values in Python
09:26
38
Default parameter values
07:27
39
Lambda functions in Python
06:09
40
First-class functions in Python
10:20
41
Installing Python in your computer
02:19
42
Installing PyCharm in your computer
02:57
43
Creating our first PyCharm project
05:46
44
Setting up PyCharm font and display settings
02:45
45
Milestone Project Brief
07:28
46
Milestone Project Implementation Video
11:34
47
Intro to Object-Oriented Programming with Python
17:03
48
More about classes and objects
09:18
49
Parameter naming in Python
03:55
50
Magic methods in Python
12:58
51
Inheritance in Python
08:46
52
The @property decorator
04:20
53
@classmethod and @staticmethod in Python
07:28
54
More @classmethod and @staticmethod examples
12:07
55
Intro to errors in Python
13:14
56
Built in errors in Python
17:59
57
Raising errors in Python
10:59
58
Creating our own errors in Python
13:43
59
Dealing with Python errors
09:01
60
The on success block and re-raising exceptions
11:22
61
Handling those pesky user errors!
14:56
62
Debugging with Pycharm
16:38
63
Files in Python
10:56
64
Python Exercise: copying files
20:39
65
CSV files with Python
09:36
66
JSON files with Python
17:34
67
Using the with syntax in Python
05:02
68
Importing our own files
10:29
69
Python relative imports: children
15:19
70
Python relative imports: parents
05:45
71
Import errors and running as a Python script
05:27
72
Intro to Milestone Project 2
05:54
73
Milestone Project with lists
17:53
74
Storing books in files
19:31
75
Using JSON instead of CSV
09:59
76
Intro to databases with Python
07:04
77
Using SQLite in Python
02:38
78
Some database jargon
04:09
79
Creating our books table using Python
05:50
80
Inserting books using Python
06:20
81
SELECT examples
03:13
82
Getting all our books
06:31
83
UPDATE and DELETE
02:15
84
Filtering with WHERE
05:00
85
Finishing the Milestone Project
07:47
86
Ordering and limiting
02:38
87
Developing our context manager in Python
10:12
88
Errors in context managers
06:56
89
Typing in Python
12:11
90
Further reading
01:45
91
Generators in Python
12:40
92
Python generator classes and iterators
08:16
93
Iterables in Python
07:49
94
The filter() function in Python
08:44
95
The map() function in Python
05:40
96
any() and all() in Python
05:00
97
Mutability in Python
11:50
98
Argument mutability in Python
12:17
99
Default values for parameters
05:04
100
Mutable default arguments (bad idea)
06:39
101
Argument unpacking in Python
11:17
102
Queues in Python
03:21
103
Some interesting Python collections
25:56
104
Timezones
08:47
105
Dates and time in Python
12:47
106
Timing your code with Python
12:33
107
Regular expressions
08:29
108
Regex examples
13:37
109
Regex in Python
13:08
110
Introduction to logging in Python
10:36
111
Logging to a file and other features
04:17
112
Higher-order functions in Python
09:38
113
Markup Languages: The Structure of HTML Code
07:33
114
Understanding HTML with BeautifulSoup
18:45
115
More complex HTML parsing
22:19
116
Structuring our parsing program better
05:41
117
Splitting HTML locators out of our Python class
04:04
118
Understanding HTML with the browser
06:36
119
Scraping our first website with Python
06:43
120
Milestone Project 3: A Quote Scraper
04:14
121
Quotes Project 2: Structuring a scraping app in Python
02:42
122
Quotes Project 3: Getting our locators
05:10
123
Quotes Project 4: Crafting our quote parser
04:52
124
Quotes Project 5: The quotes page
04:31
125
Quotes Project 6: Recap of the project
03:55
126
Milestone Project 4: A Book Scraper + application
05:02
127
Books Project 2: Recap of HTML locators
04:54
128
Books Project 3: Creating locators in Python
04:27
129
Books Project 4: Creating our page
03:28
130
Books Project 5: Creating our book parser
11:02
131
Books Project 6: Writing our app file
03:56
132
Books Project 7: Sorting the books
08:51
133
Books Project 8: Constructing our menu
06:03
134
ASIDE: The best way to write user menus
01:29
135
Books Project 9: Getting multiple pages
02:38
136
Books Project 10: Multiple pages in Python
05:27
137
Books Project 11: Getting the page count in Python
06:34
138
Books Project 12: Adding logging to our Python project
20:29
139
A word on scraping pages with JavaScript
03:15
140
Introduction to this section
01:39
141
Review of our quotes scraping code
05:02
142
Downloading chromedriver
02:01
143
Using Chrome in our scraping code
06:27
144
Our new page locators
03:45
145
Interacting with dropdowns
04:08
146
Selecting tags
05:18
147
Searching for quotes
02:18
148
Encapsulating logic more simply
05:04
149
Adding some error handling
01:40
150
Implicit and explicit waits in Selenium
06:50
151
Adding waits to our program code
07:05
152
The Dining Philosophers Problem
07:39
153
Processes and threads
09:25
154
The Python GIL
10:31
155
Example: threads in Python
12:41
156
Using Python concurrent.futures: the ThreadPoolExecutor
03:09
157
Don't kill threads!
01:49
158
Multiprocessing in Python
07:25
159
Using Python concurrent.futures: the ProcessPoolExecutor
02:16
160
Dealing with shared state in threads
08:32
161
Queuing in threads with shared state
12:26
162
Using Python generators instead of threads
04:51
163
Our first single-threaded task scheduler in Python
06:05
164
Yielding from another iterator in Python
05:37
165
Receiving data through yield
09:35
166
The async and await keywords
06:11
167
Watch these talks for more explanations and examples!
01:53
168
Our asynchronous scraper
04:43
169
Making our first async request in Python
14:50
170
Getting multiple pages efficiently
10:24
171
Using async_timeout for security
01:47
172
Turning our book scraping project async
10:17
173
A note on HTTPS with Python and Mac OS X
03:13
174
Running Python in the console
08:50
175
Terminal video: running Python
05:51
176
Terminal video: what is a virtualenv?
10:44
177
Terminal video: navigating the terminal and using virtualenv
09:50
178
Terminal video: using Pipenv
09:39
179
Terminal video: Pipenv and virtualenv
04:06
180
Setting up our project with Pipenv
05:43
181
Our first Flask endpoint
07:38
182
Returning information with Flask and Python
04:56
183
Rendering HTML with Flask and Python
06:25
184
Error pages and Jinja2 inheritance
11:40
185
Rendering forms with Flask and Python
14:22
186
Accessing POST form data with Flask
04:49
187
Putting our form in a single endpoint
03:03
188
Using Jinja2 for loops to create a nicer homepage
07:58
189
Adding navigation to our website
04:55
190
Signing up to OpenExchangeRates
01:42
191
Getting all exchange rates from the API
05:31
192
Creating a currency exchange library
07:26
193
Caching functions with functools
04:50
194
TTL caches with cachetools
02:05
195
A simple decorator in Python
06:08
196
Using a @syntax
03:24
197
Functools wraps in Python
01:56
198
Decorating functions with parameters
04:57
199
Decorators with parameters
09:51
200
Functions that accept multiple arguments
05:30
201
Generic decorators for any function
03:55
202
Intro to multiple inheritance with Python
13:24
203
Intro to ABCs in Python
08:07
204
The usefulness of ABCs
03:21
205
The relationship between ABCs and interfaces
06:50
206
The property setter in Python
11:09
207
Setting up Tkinter
02:48
208
Hello world in Tkinter
07:38
209
Labels and fields
05:23
210
Packing components
11:58
211
Using frames for different layouts
03:42
212
Starting our text editor project
00:57
213
Tkinter notebooks and creating files
03:33
214
Adding a menu to our application
04:13
215
Saving files to disk
08:00
216
Opening files
04:20
217
Binding shortcuts in Tkinter
04:43
218
Checking our tabs for unsaved changes
08:18
219
Confirming exit with unsaved changes
04:25
220
Closing individual tabs
05:22
221
Adding another menu
01:56
222
Adding a permanent scrollbar to our text area
04:23
223
Introduction to this section
02:54
224
Testing functions
07:27
225
Testing for errors
02:38
226
Testing our multiplication function
09:09
227
Writing a printer class for testing
02:00
228
Testing classes
04:45
229
More Printer tests
09:27
230
Testing external libraries
09:54
231
Conclusion of this section
00:59
232
Presentation: queues, stacks, and complexity
09:41
233
Presentation: binary search
06:48
234
Presentation: binary trees
05:54
235
Presentation: traversal of binary trees
07:13
236
Presentation: adding elements to a binary tree
07:01
237
Adding elements to a binary tree in Python
10:59
238
Recursion and inorder traversal in Python
14:36
239
Finding nodes in a tree with Python
03:22
240
How do you delete nodes from a binary tree?
09:30
241
Deleting nodes in code with Python
14:12
242
Deleting nodes with two children in code
18:45
243
Testing our binary tree!
02:38
244
Python libraries overview
16:36
245
Using pylint
12:41
246
Using yapf
07:43
247
Sending e-mails with smtplib
07:36
248
Sending e-mails with Mailgun
09:54
249
Creating a re-usable Mailgun library
07:12
250
Sneak peek: my IDE setup!
09:31
251
Variables in Python
08:27
252
String formatting in Python
06:27
253
Getting user input
05:17
254
Lists, tuples, and sets
06:32
255
Advanced set operations
04:40
256
Booleans in Python
05:00
257
If statements in Python
08:18
258
The in keyword
02:03
259
If statements with the 'in' keyword
08:19
260
Loops in Python
11:08
261
List comprehensions
07:25
262
Dictionaries
08:32
263
Destructuring variables
08:29
264
Functions in Python
10:42
265
Function arguments and parameters
07:41
266
Default parameter values
03:55
267
Functions returning values
07:20
268
Lambda functions in Python
07:53
269
Dictionary comprehensions
04:02
270
Unpacking arguments
10:25
271
Unpacking keyword arguments
08:45
272
Object-Oriented Programming in Python
15:53
273
Magic methods: __str__ and __repr__
06:26
274
Class methods and static methods
14:04
275
Class inheritance
08:33
276
Class composition
06:09
277
Type hinting
05:09
278
How imports work in Python
09:34
279
Relative imports in Python
08:53
280
Errors in Python
12:48
281
Custom error classes
05:05
282
First-class functions
07:53
283
Simple decorators in Python
07:13
284
The 'at' syntax for decorators
03:34
285
Decorating functions with parameters
02:25
286
Decorators with parameters
04:51
287
Mutability in Python
06:04
288
Mutable default parameters (and why they're a bad idea)
04:28
289
Thank you for taking the course
00:51

Unlock unlimited learning

Get instant access to all 288 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Spark and Python for Big Data with PySpark

Spark and Python for Big Data with PySpark

Sources: udemy
Learn the latest Big Data Technology - Spark! And learn to use it with one of the most popular programming languages, Python! One of the most valuable technolog
10 hours 35 minutes 43 seconds
Python & LeetCode | The Ultimate Interview BootCamp

Python & LeetCode | The Ultimate Interview BootCamp

Sources: kaeducation.com
I know LeetCode questions are meant to be difficult, but do not worry! I made it a priority to present each problem in the most simplistic and direct way possible. You will bene...
8 hours 35 minutes 33 seconds
Automated Software Testing with Python

Automated Software Testing with Python

Sources: udemy
Testing automation doesn't have to be painful. Software testing is an essential skill for any developer, and I'm here to help you truly understand all types of
13 hours 26 minutes 55 seconds
Python Django Dev To Deployment

Python Django Dev To Deployment

Sources: udemy, Brad Traversy
This is a very practical course where we take a list of requirements from a fictional company to build a real estate application using Django. We will take a basic html/css Boot...
11 hours 7 minutes 11 seconds
Rock Solid Python with Python Typing Course

Rock Solid Python with Python Typing Course

Sources: Talkpython
When Python was originally invented way back in 1989, it was a truly dynamic and typeless programming language. But that all changed in Python 3.5 when type "hints" were added t...
4 hours 27 minutes 54 seconds