The Complete Python Course | Learn Python by Doing

The Complete Python Course | Learn Python by Doing
The Complete Python Course | Learn Python by Doing
English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 30 Hours | 12.3 GB

Go from Beginner to Expert in Python by building projects. The best investment for your Python journey!

Fully updated for 2019 The course covers every major Python topic (including Object-Oriented Programming, Web Scraping, and even GUI development), and now includes even more 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.

What you’ll learn

  • Develop a life-long love for programming with Python!
  • From foundations to expert, learn about every major Python topic.
  • Master Object-Oriented Programming and structure your Python programs like a professional.
  • Write professional-grade Pythonic code with all the best practices and avoiding common pitfalls.
  • Swiftly understand complex topics like algorithms and asynchronous programming in Python.
  • Automate extracting data from websites using web scraping libraries like BeautifulSoup.
Table of Contents

Intro to Python
1 Welcome to this course!
2 Overview of the course curriculum
3 Our Python coding environment
4 Variables and printing in Python
5 Numbers in Python
6 Calculating the remainder of a division
7 Solution: variables and numbers
8 Two tools to take the most from this course!
9 Python strings
10 Python string formatting
11 Getting user input in Python
12 Solution: communicating with users
13 Booleans and comparisons in Python
14 and & or in Python
15 Lists in Python
16 Tuples in Python
17 Sets in Python
18 Advanced set operations
19 Solution: nearby friends
20 Python dictionaries
21 Length and sum
22 Solution: dictionaries
23 Joining a list

Python fundamentals
24 If statements in Python
25 While loops in Python
26 Solution: a simple text menu
27 For loops in Python
28 Destructuring syntax
29 Iterating over dictionaries
30 Break and continue
31 A couple more loop examples
32 Solution: FizzBuzz
33 The else keyword with loops
34 Finding prime numbers with for loops
35 List slicing in Python
36 List comprehension in Python
37 Comprehensions with conditionals
38 Set and dictionary comprehensions
39 The zip function
40 Solution: an improved lottery!
41 Functions in Python
42 Arguments and parameters
43 Functions and return values in Python
44 Default parameter values
45 Lambda functions in Python
46 First class and higher order functions

Milestone Project 1
47 Code for this section
48 Installing Python in your computer
49 Installing PyCharm in your computer
50 Creating our first PyCharm project
51 Setting up PyCharm font and display settings
52 Milestone Project brief
53 Coding our application’s menu in Python
54 Adding new movies to our application
55 Showing the user their movies
56 Finding movies and retrieving their details

Object-Oriented Programming with Python
57 Intro to Object-Oriented Programming with Python
58 Solution: your first Python class
59 Solution: defining a method
60 More about classes and objects
61 So… sum(), int(), str(), len(), what else is there?
62 Parameter naming in Python
63 Magic methods in Python
64 Solution: magic methods in Python
65 Inheritance in Python
66 The @property decorator
67 @classmethod and @staticmethod in Python
68 More @classmethod and @staticmethod examples

Errors in Python
69 Code samples for this section
70 Intro to errors in Python
71 Built in errors in Python
72 Raising errors in Python
73 Solution: raising an error
74 Creating our own errors in Python
75 Solution: raising our own custom error
76 Dealing with Python errors
77 The on success block and re-raising exceptions
78 Handling those pesky user errors!
79 Solution: try-except-finally
80 Debugging with Pycharm
81 Further reading

Files in Python
82 Code for this section
83 Files in Python
84 Python Exercise: copying files
85 Solution: building a quiz system
86 CSV files with Python
87 How to use the csv module to read and write CSV files more easily
88 JSON files with Python
89 Solution: a CSV to JSON converter
90 Using the with syntax in Python
91 Importing our own files
92 Python relative imports: children
93 Solution: importing modules
94 Python relative imports: parents
95 Import errors and running as a Python script
96 Further reading

Databases in Python & Milestone Project 2
97 Code for this section
98 Intro to Milestone Project 2
99 Milestone Project 2 Brief
100 Milestone Project with lists
101 Storing books in files
102 Using JSON instead of CSV
103 Intro to databases with Python
104 Using SQLite in Python
105 Some database jargon
106 Creating our books table using Python
107 Inserting books using Python
108 SELECT examples
109 Getting all our books
111 Filtering with WHERE
112 Finishing the Milestone Project
113 Ordering and limiting
114 Developing our context manager in Python
115 Errors in context managers
116 Further reading

Type hinting in Python
117 Typing in Python
118 Further reading

Advanced built-in functions in Python
119 Generators in Python
120 Solution: a prime number generator
121 Python generator classes and iterators
122 Solution: coding a generator class
123 Iterables in Python
124 The filter() function in Python
125 The map() function in Python
126 any() and all() in Python
127 The enumerate() function
128 So what other things evaluate to True or False?
129 Further reading

Advanced Python Development
130 Mutability in Python
131 Argument mutability in Python
132 Default values for parameters
133 Mutable default arguments (bad idea)
134 Argument unpacking in Python
135 Queues in Python
136 Some interesting Python collections
137 Solution: Python collections
138 Timezones
139 Dates and time in Python
140 Timing your code with Python
141 Regular expressions
142 Regex examples
143 Regex in Python
144 Solution: secure file names using regex
145 Introduction to logging in Python
146 Logging to a file and other features
147 Introduction to unit testing
148 The built-in itertools module
149 Further reading

Web Scraping with Python
150 Code for this section
151 Understanding HTML with BeautifulSoup
152 More complex HTML parsing
153 Structuring our parsing program better
154 Splitting HTML locators out of our Python class
155 Understanding HTML with the browser
156 Scraping our first website with Python
157 Milestone Project 3: A Quote Scraper
158 Quotes Project 2: Structuring a scraping app in Python
159 Quotes Project 3: Getting our locators
160 Quotes Project 4: Crafting our quote parser
161 Quotes Project 5: The quotes page
162 Quotes Project 6: Recap of the project
163 Milestone Project 4: A Book Scraper + application
164 Books Project 2: Recap of HTML locators
165 Books Project 3: Creating locators in Python
166 Books Project 4: Creating our page
167 Books Project 5: Creating our book parser
168 Books Project 6: Writing our app file
169 Books Project 7: Sorting the books
170 Books Project 8: Constructing our menu
171 ASIDE: The best way to write user menus
172 Books Project 9: Getting multiple pages
173 Books Project 10: Multiple pages in Python
174 Books Project 11: Getting the page count in Python
175 Books Project 12: Adding logging to our Python project
176 A word on scraping pages with JavaScript
177 A note on scraping and robots.txt

Browser Automation with Selenium
178 Introduction to this section
179 Code for this section
180 Review of our quotes scraping code
181 Downloading chromedriver
182 Using Chrome in our scraping code
183 Our new page locators
184 Interacting with dropdowns
185 Selecting tags
186 Searching for quotes
187 Encapsulating logic more simply
188 Adding some error handling
189 Implicit and explicit waits in Selenium
190 Adding waits to our program code

Asynchronous Python Development
191 Code samples for this section
192 A glossary of terms used in concurrency
193 The Dining Philosophers Problem
194 Processes and threads
195 The Python GIL
196 Example: threads in Python
197 Using Python concurrent.futures: the ThreadPoolExecutor
198 Don’t kill threads!
199 Multiprocessing in Python
200 Using Python concurrent.futures: the ProcessPoolExecutor
201 Dealing with shared state in threads
202 Queuing in threads with shared state
203 Using Python generators instead of threads
204 Our first single-threaded task scheduler in Python
205 Yielding from another iterator in Python
206 Receiving data through yield
207 The async and await keywords
208 Watch these talks for more explanations and examples!
209 Our asynchronous scraper
210 Making our first async request in Python
211 Getting multiple pages efficiently
212 Using async_timeout for security
213 Turning our book scraping project async
214 A note on HTTPS with Python and Mac OS X

Python on the console and managing project dependencies
215 Running Python in the console
216 Terminal video: running Python
217 Terminal video: what is a virtualenv?
218 Terminal video: navigating the terminal and using virtualenv
219 Terminal video: using Pipenv
220 Terminal video: Pipenv and virtualenv
221 Summary e-book of using Pipenv

Web Development with Flask
222 Setting up our project with Pipenv
223 Code samples for this section
224 Our first Flask endpoint
225 Returning information with Flask and Python
226 Rendering HTML with Flask and Python
227 Error pages and Jinja2 inheritance
228 Rendering forms with Flask and Python
229 Accessing POST form data with Flask
230 Putting our form in a single endpoint
231 Using Jinja2 for loops to create a nicer homepage
232 Adding navigation to our website

Interacting with APIs with Python
233 Code for this section
234 Signing up to OpenExchangeRates
235 Getting all exchange rates from the API
236 Creating a currency exchange library
237 Caching functions with functools
238 TTL caches with cachetools

Decorators in Python
239 A simple decorator in Python
240 Solution: decorators
241 Using a @syntax
242 Functools wraps in Python
243 Decorating functions with parameters
244 Decorators with parameters
245 Functions that accept multiple arguments
246 Generic decorators for any function
247 Solution: a generic access control decorator
248 Multiple decorators for one function?

Advanced Object-Oriented Programming
249 Intro to multiple inheritance with Python
250 Solution: multiple inheritance
251 Intro to ABCs in Python
252 The usefulness of ABCs
253 The relationship between ABCs and interfaces
254 Solution: ABCs
255 The property setter in Python
256 Pythonic vs. Non-Pythonic

GUI Development with Tkinter
257 Code for this section
258 Setting up Tkinter
259 Hello world in Tkinter
260 Labels and fields
261 Packing components
262 Using frames for different layouts
263 Starting our text editor project
264 Tkinter notebooks and creating files
265 Adding a menu to our application
266 Saving files to disk
267 Opening files
268 Binding shortcuts in Tkinter
269 Checking our tabs for unsaved changes
270 Confirming exit with unsaved changes
271 Closing individual tabs
272 Adding another menu
273 Adding a permanent scrollbar to our text area

Unit testing with Python
274 Introduction to this section
275 Code for this section
276 Testing functions
277 Testing for errors
278 Testing our multiplication function
279 Writing a printer class for testing
280 Testing classes
281 More Printer tests
282 Testing external libraries
283 Conclusion of this section

Algorithms and Data Structures
284 Presentation: queues, stacks, and complexity
285 A conference talk about Big-O
286 Presentation: binary search
287 Presentation: binary trees
288 Presentation: traversal of binary trees
289 Presentation: adding elements to a binary tree
290 Adding elements to a binary tree in Python
291 Recursion and inorder traversal in Python
292 Finding nodes in a tree with Python
293 How do you delete nodes from a binary tree?
294 Deleting nodes in code with Python
295 Deleting nodes with two children in code
296 Testing our binary tree!

Python libraries
297 Python libraries overview
298 Using pylint
299 Using yapf
300 Sending e-mails with smtplib
301 Sending e-mails with Mailgun
302 Creating a re-usable Mailgun library
303 Sneak peek: my IDE setup!

Bonus Section
304 Thank you for taking the course
305 Bonus lecture: next steps and other courses