Learn Python Programming Masterclass
About Course
Learn Python Programming Masterclass – Free Online Course
This free Python programming masterclass is designed to give you a solid foundation in Python programming, fast. Whether you want to build the skills you need to get your first Python programming job, move to a more senior software developer position, get started with Machine Learning, Data Science, Django or other hot areas that Python specializes in, or just learn Python to be able to create your own Python apps quickly, this course is for you.
This course is perfect for complete beginners who have never programmed before, as well as existing programmers who want to increase their career options by learning Python. Python is one of the most popular programming languages in the world, used by huge companies like Google in mission-critical applications like Google Search. It’s also the number one language choice for machine learning, data science and artificial intelligence. To get those high-paying jobs, you need expert knowledge of Python, and that’s what you will get from this course.
By the end of the course, you’ll be able to apply in confidence for Python programming jobs. This course will teach you all the essential Python keywords, operators, statements, and expressions needed to fully understand exactly what you’re coding and why. You’ll also learn about object-oriented programming, tKInter (for building GUI Interfaces), using databases with Python, and more. We’ll also show you the difference between Python 2 and Python 3, so you understand how things work differently in each version.
This course is completely free and available on Theetay. It’s taught by Tim and Jean-Paul, who have over 70 years of combined professional programming experience. They’ll teach you industry best practices for Python programming that real employers demand. You’ll also get full support from the instructors, answering any questions you have 7 days a week.
This course is from Udemy.
Start learning today!
What Will You Learn?
- Have a fundamental understanding of the Python programming language.
- Have the skills and understanding of Python to confidently apply for Python programming jobs.
- Acquire the pre-requisite Python skills to move into specific branches - Machine Learning, Data Science, etc..
- Add the Python Object-Oriented Programming (OOP) skills to your résumé.
- Understand how to create your own Python programs.
- Learn Python from experienced professional software developers.
- Understand both Python 2 and Python 3.
Course Content
Course Introduction
-
A Message from the Professor
-
– Introduction To The Course
02:02 -
– Remaster in Progress
02:05 -
– Video Quality
01:08 -
– Subtitles
01:20 -
– How to Get Help
04:46 -
– Important Tip Source Code
02:55
Install and Setup
-
– Python for Windows
02:32 -
– Installing IntelliJ IDEA for Windows
02:32 -
– Python for Mac
03:23 -
– Install IntelliJ IDEA for Mac
02:42 -
– Python for Linux
04:25 -
– Install IntelliJ IDEA for Linux
02:14 -
– Configuring IntelliJ IDEA WINDOWS MAC and LINUX
11:01 -
– Further configuration of IntelliJ
04:41
Stepping into the World of Python
-
– Introduction
02:16 -
– Our First Python Program
06:36 -
– Printing in Python
07:15 -
– Strings in Python
07:23 -
– The Escape Character
07:36 -
– More on Escape Characters in Strings
03:49 -
– Variables and Types
07:25 -
– Python is a Strongly Typed Language
04:50 -
– Numeric Data Types in Python
03:47 -
– Numeric Operators
05:33 -
– Expressions
05:17 -
– Operator Precedence
07:14 -
– The str String Data Type
05:54 -
– Negative Indexing in Strings
04:08 -
– Slicing
09:56 -
– Slicing with Negative Numbers
02:41 -
– Using a Step in a Slice
07:17 -
– Slicing Backwards
05:05 -
– Challenge Solution and Slicing Idioms
05:14 -
– String Operators
08:28 -
– String Replacement Fields
11:03 -
– String Formatting
10:50 -
– fstrings
03:38 -
– Python 2 String Interpolation
05:21 -
– Section Summary
00:59
Program Flow Control in Python
-
– Introduction to Blocks and Statements
10:13 -
– if Statements
09:37 -
– elif
04:53 -
– Using a Debugger in IntelliJ or Pycharm
10:20 -
– More on if elif and else
04:59 -
– if elif and else in the Debugger
04:00 -
– Adding a Second Guess
06:18 -
– Conditional Operators
08:31 -
– Challenge Solution
02:32 -
– Using and or in Conditions
05:10 -
– Simplify Chained Comparison
04:39 -
– Boolean Expression True and False
07:48 -
– Truthy Values
04:30 -
– in and not in
06:46 -
– if Challenge
00:59 -
– Solution to if Challenge
03:22 -
– for loops
06:09 -
– Stepping through a for loop
07:45 -
– for loops Extracting Values from User Input
05:10 -
– Iterating Over a Range
03:08 -
– More About Ranges
04:25 -
– Nested for loops
06:30 -
– continue
07:27 -
– break
06:51 -
– Initialising Variables and None
04:31 -
– while loops
06:13 -
– More on while loops
06:08 -
– Break in a while loop
03:48 -
– The Random Module and Import
09:27 -
– Challenge Solution
05:26 -
– Binary Search
05:20 -
– Hi Lo Game
08:40 -
– Pass Statement and Complete the Hi Lo Game
04:16 -
– Testing the Hi Lo Game
06:38 -
– Augmented Assignment
07:42 -
– PEP8 The Python Style Guide
08:29 -
– Refactoring Code
03:31 -
– else in a loop
05:21 -
– else in the Hi Lo Game
05:06 -
– Conditional Debugging
04:43 -
– Another else Example
01:48 -
– Section Summary and Challenge
03:19 -
– Section Challenge Solution
03:50 -
– Optional Extra Challenge Solution
04:55 -
– Changing the Condition
01:47
Lists and Tuples
-
– Introduction to Sequence Types
02:55 -
– Lists
04:24 -
– Immutable Objects
06:31 -
– Mutable Objects
04:39 -
– Binding Multiple Names to a List
03:24 -
– Common Sequence Operations
04:44 -
– Operations on Mutable Sequences
03:41 -
– Appending to a List
07:41 -
– Mini Challenge Solution
02:07 -
– Iterating Over a List
04:12 -
– The enumerate Function
04:28 -
– Improving our Code
08:22 -
– Removing Items from a List
05:10 -
– Sorting Lists
04:28 -
– Builtin Functions
03:48 -
– Sorting Things
09:57 -
– CaseInsensitive Sorting
04:40 -
– Creating Lists
09:16 -
– Replacing a slice
05:54 -
– Deleting Items from a List
07:29 -
– Safely removing values from a list
02:53 -
– Removing the High Values
06:33 -
– Test Test and Test Then Test Again
03:20 -
– Testing the Program
03:47 -
– Removing Items from a List Backwards
05:54 -
– The Reversed Function
05:04 -
– Algorithms Performance
08:58 -
– Summary so far
02:50 -
– Nested Lists Code Style
09:13 -
– Processing Nested Lists
04:42 -
– Solution to nospam Challenge
03:36 -
– Function Signatures
03:35 -
– print revisited
06:24 -
– The join Method
07:44 -
– The split Method
09:09 -
– Solution to Mini Challenge
05:43 -
– Tuples
04:45 -
– Tuples are Immutable
07:21 -
– Unpacking a Tuple
06:29 -
– Practical uses for Unpacking Tuples
04:06 -
– More Unpacking
06:09 -
– Nested Tuples and Lists
05:11 -
– Solution to Unpacking Challenge
03:10 -
– Nesting Further
03:44 -
– Nested Data Structures
05:37 -
– Nested Indexing
04:20 -
– Simple Jukebox Demonstration
02:25 -
– Simple Jukebox Importing Data
05:05 -
– Simple Jukebox The Code
07:04 -
– Constants in Python
08:53 -
– Finishing the Code
05:37 -
– Challenge
00:43 -
– Challenge Solution
04:03 -
– Summary
02:47
Functions An Introduction
-
– Introduction
02:38 -
– Defining a function
05:35 -
– Program flow when calling a function
04:25 -
– Parameters and arguments
04:41 -
– Debugging with parameters
07:59 -
– Palindromes
07:13 -
– Palindrome challenge solution
02:59 -
– Sentence challenge solution
05:28 -
– Functions calling functions
02:05 -
– Returning values
08:04 -
– getinteger Challenge solution
04:15 -
– Returning None
02:58 -
– Functions that perform actions
07:59 -
– Handling invalid arguments
07:22 -
– width challenge solution
02:07 -
– Default parameter values
02:34 -
– Keyword arguments
06:22 -
– Docstrings
06:03 -
– Writing a Docstring
07:50 -
– How professional is that
06:13 -
– Fibonacci Numbers
03:52 -
– Writing a fibonacci function
08:07 -
– Function annotations and type hints
07:16 -
– Function annotations with default values
03:32 -
– A history lesson
05:34 -
– Printing in colour
07:50 -
– Running your program like a user
05:55 -
– Windows Only Installing prerelease version of colorama
07:28 -
– colorama module and virtual environments
08:10 -
– Activating a virtual environment
06:01 -
– A function to test our HiLo game
09:59 -
– Counting correct guesses
04:47 -
– Playing Fizz Buzz
04:03 -
– Playing Fizz Buzz Solution
06:27 -
– args
07:38 -
– colourprint with multiple arguments
05:29 -
– Rules for variable number of arguments
02:18 -
– Defining different parameter types
06:46 -
– Section Summary
03:35
Dictionaries and Sets
-
– Introduction
01:34 -
– What is a dictionary
08:19 -
– Iterating over a dictionary
06:38 -
– Adding items to a dictionary
04:06 -
– Changing values in a dictionary
03:38 -
– Removing items from a dictionary
07:08 -
– Using in with a dictionary
07:58 -
– Dictionary menu challenge solution
08:32 -
– Adding items to a dictionary
04:59 -
– Smart fridge
04:23 -
– Whats for tea
09:19 -
– Using several dictionaries together
05:45 -
– Checking the pantry
04:24 -
– Checking quantities choosing a data structure
05:19 -
– Checking quantities the code
06:24 -
– Solution Create a shopping list challenge
06:51 -
– Wrong decisions dont have to be fatal
05:42 -
– The setdefault method
10:05 -
– APIs and a mobile phone demo
08:07 -
– The dict documentation
08:38 -
– The remaining dict methods
04:37 -
– The dict update method
06:28 -
– The dict values method
08:06 -
– References to mutable objects
05:39 -
– Shallow copy
05:46 -
– Shallow copy stepbystep
03:47 -
– Deep copy
05:11 -
– Simple deep copy solution
08:38 -
– Hash functions
07:56 -
– A really bad hashing function
08:45 -
– Hash tables
06:57 -
– Completing our simple dictionary implementation
05:07 -
– Hash functions and security
03:49 -
– hashlib the secure hash module
12:11 -
– Introduction to AndroidTim
02:56 -
– Introduction to sets
06:12 -
– Python sets
04:48 -
– Implications of sets being unordered
04:56 -
– set membership
08:09 -
– Testing set membership is fast
07:15 -
– Adding items to a set
05:42 -
– Using a set to remove duplicate values
06:21 -
– Deleting items from a set
08:17 -
– The discard method
05:24 -
– The remove method
10:27 -
– The pop method
04:41 -
– set union
05:32 -
– Set union in practice
04:19 -
– Union update
02:57 -
– Advantage of the set operation methods over the operators
05:03 -
– Set intersection
05:36 -
– Set intersection in practice
05:56 -
– Set difference
02:19 -
– Set difference in practice
02:58 -
– Set symmetric difference
06:06 -
– subsets and supersets
03:04 -
– subsets and supersets in Python
06:47 -
– Practical application of subsets and supersets
08:06
Reading and writing files in Python
-
– Introduction
01:44 -
– Files and directories
10:38 -
– Introduction to the command prompt or terminal
06:06 -
– Paths
11:43 -
– Text files
02:27 -
– Reading from a text file
10:38 -
– Opening a file using with
03:11 -
– read readline and readlines
08:24 -
– strip lstrip and rstrip
06:58 -
– removeprefix and removesuffix in Python 39
05:13 -
– Parsing data in a text file
05:53 -
– Working with text data
06:29 -
– Solution to capital city challenge
05:58 -
– Dictionary values with multiple keys
03:23 -
– Printing data to a text file
04:36 -
– Writing data to a text file
09:04 -
– File modes
04:59 -
– Unicode a brief history
06:33 -
– Unicode in Python
04:06 -
– File encodings
10:22 -
– Serializing data using JSON
07:38 -
– Limitations of JSON
06:08 -
– Practical application parsing JSON data
07:44 -
– Practical application parsing JSON data from the internet
08:04 -
– The CSV format
06:47 -
– Reading a CSV file
07:52 -
– quoting in a CSV file
05:38 -
– Sniffer and Dialect
06:41 -
– CSV Dialect
05:45 -
– Writing a CSV file
04:10 -
– The csv DictReader
03:20 -
– Solution to DictReader challenge
06:10 -
– Field names with DictReader and DictWriter
08:01 -
– Reading and writing multiple files
04:34 -
– The csv DictWriter
07:38 -
– The zip function
07:41 -
– Reading and writing to the same text file
08:17 -
– Solution to parsing functions challenge
07:21 -
– The recordinvoice function
07:55 -
– Using the recordinvoice function
09:15 -
– seek and tell
08:24 -
– Improving the recordinvoice function
04:35 -
– Working with binary files bytes and bytearray
11:05 -
– Reading a bitmap file
11:44 -
– Little endian and big endian
03:21 -
– Making sense of binary data
10:06 -
– Reading tags in an mp3 file
08:04 -
– The ID3v2 specification
07:18 -
– The code
11:40 -
– Filling in the blanks
10:12 -
– Extracting images
14:17 -
– Testing our readid3 program
05:49 -
– Checking the hash of a file
06:03 -
– End of Remaster
01:21
Modules and Functions in Python
-
– Introduction to the Section
00:25 -
– Modules and import
15:03 -
– The standard Python library
09:14 -
– WebBrowser Module
22:58 -
– Time and DateTime in Python
17:36 -
– Time Continued and Challenge
11:08 -
– Timezones
14:41 -
– Check Path In Windows
06:38 -
– Check Path on a Mac
03:19 -
– Installing the pytz module WindowsMacLinux
05:37 -
– Using Timezones
13:21 -
– More on Timezones
17:22 -
– Timezone Challenge
11:54 -
– Introduction to Tkinter
12:29 -
– TkInter Pack Geometry Manager
13:41 -
– TkInter Grid Geometry Manager
12:58 -
– Advanced GUI Example Part 1
17:13 -
– Advanced GUI Example Part 2
14:43 -
– Advanced GUI Example Part 3
18:09 -
– Tkinter Challenge
14:57 -
– Functions in Python
15:15 -
– Functions Part 2
12:07 -
– Functions Part 3
10:03 -
– Parabola More on Functions
14:25 -
– Scope in Functions
13:02 -
– Fix Function and Draw Circles
12:52 -
– Enhanced Circles and Challenge
10:19 -
– Blackjack Setup
13:42 -
– Load Cards
13:45 -
– Deal Cards
08:50 -
– Global Variables
13:08 -
– Global Keyword
16:58 -
– Test Blackjack Game
12:55 -
– Blackjack Challenge
19:45 -
– Importing Techniques
20:47 -
– Underscores in Python code
17:25 -
– Namespaces more on Scope and Recursion
16:07 -
– Recursion with OS Module and Filesystem and Nonlocal keyword
13:37 -
– Nonlocal keyword Free and LEGB
17:07
Object Oriented Python
-
– Object Orientated Programming and Classes
15:01 -
– Instances Constructors Self and more
15:04 -
– Class Attributes
10:28 -
– Methods Part 1
14:37 -
– Methods Part 2
14:19 -
– Non Public and Mangling
11:53 -
– DocStrings and Raw Literals
15:11 -
– Album class and More on DocStrings
13:42 -
– Artist class and import Albums
15:56 -
– Load data and Write Checkfile
14:42 -
– Compare Files and Algorithm Flowcharts
11:46 -
– Implement Revised LoadData Algorithm
14:02 -
– Write OOP Version
12:29 -
– Getters and Properties
09:42 -
– Remove Circular References Challenge
06:02 -
– Getters and Setters
15:59 -
– Data Attributes and Properties
14:31 -
– Alternate Syntax for Properties
05:06 -
– Inheritance
15:00 -
– Subclasses and Overloading
14:10 -
– Calling Super Methods
11:16 -
– Changing Behavior of Methods
09:31 -
– Overriding Methods
16:18 -
– Inheritance Challenge
11:38 -
– Polymorphism
11:35 -
– Duck Test
07:06 -
– Composition
18:57 -
– Composition Continued
11:19 -
– Test Code and Challenge
10:37 -
– Aggregation
12:52
Using Databases in Python
-
– Introduction to Databases
05:32 -
– Database Terminology
10:33 -
– Sqlite3 Install on Windows
08:16 -
– Sqlite3 Install on a Mac
02:15 -
– SQLite3 Install on Ubuntu Linux
02:46 -
– Introduction to SQLite
11:15 -
– More with SQL using SQLite
10:42 -
– Querying data with Sqlite
16:04 -
– Order by and Joins
13:12 -
– More complex Joins
11:44 -
– Wildcards and Views
15:17 -
– Housekeeping and the Challenge
14:15 -
– SQL in Python
13:14 -
– Connections Cursors and Transactions
18:19 -
– SQL Injection Attacks
12:27 -
– Placeholders and Parameter Substitution
09:04 -
– Exceptions
17:45 -
– Exceptions Challenge
13:51 -
– Exceptions Continued
14:49 -
– Raising Exceptions
12:40 -
– More on Exceptions
09:27 -
– Exceptions and TODO
15:54 -
– Rolling back Transactions
12:36 -
– Adding Database code to the Account Class
14:40 -
– GUI Database Editing Overview
01:33 -
– Ultimate Edition Database View
14:35 -
– Update Deposit and Withdrawal Methods
13:42 -
– Displaying Time in Different Timezones
10:55 -
– SQLite3 strftime Function
13:17 -
– Challenge
13:29 -
– Problems Storing Timezones
04:26 -
– Rolling Back Transactions
16:38 -
– Simple Database Browser
19:47 -
– Scrollbars
09:49 -
– Star Args
14:36 -
– Kwargs
09:12 -
– More on KWArgs
16:57 -
– Scrollable Listbox
12:49 -
– Populating a Listbox from a Database
10:04 -
– Show Songs from Album
06:10 -
– The DataListbox Class Code
16:35 -
– Linking our DataListBoxes
11:34 -
– Linking our DataListBoxes Continued
15:04 -
– DataListbox Challenge
17:28
Generators Comprehensions and the timeit module
-
– Introduction
00:43 -
– Generators and Yield
15:05 -
– Next and Ranges
06:33 -
– Generator Examples Fibonacci numbers and Calculating Pi
18:30 -
– The oswalk Generator
16:14 -
– Searching the Filesystem
16:14 -
– Reading Mp3 Tags
19:24 -
– List Comprehensions
18:12 -
– List Comprehensions and SideEffects
08:15 -
– Challenge Solutions
09:54 -
– Conditional Comprehensions
11:54 -
– Conditional Expressions
11:48 -
– Challenges
03:03 -
– Challenge 1 Solution
04:29 -
– Challenge 2 Solution
11:49 -
– Nested Comprehensions
11:51 -
– Nested Comprehensions Challenge
14:58 -
– The timeit Module
11:50 -
– More on timeit
12:22 -
– timeit Continued and Challenge
13:53 -
– timeit Challenge
10:51 -
– Map Intro
08:59 -
– Map Challenge Completion
07:09 -
– The Filter Function
08:17 -
– The Reduce Function
07:40 -
– any and all
10:42 -
– Named Tuples
10:52 -
– any and all with Comprehensions
11:18
Big O notation
-
– Big O notation
08:38 -
– Big O tables and graphs
07:11 -
– Bubble sort
14:13 -
– Big O of Bubble sort and an optimisation
05:23 -
– Big O of our improved Bubble sort
04:47 -
– Bubble sort optimisation
05:36 -
– Best worst and average cases
03:01 -
– Big O summary
02:42
Section 9 Remaster in Progress
-
– Introduction to the section
03:25 -
– The turtle module
10:08 -
– Importing specific objects
04:00 -
– Namespaces and global scope
06:21 -
– Local scope
05:40 -
– Builtins
07:45 -
– Nested functions
03:40 -
– Enclosing scope
03:25 -
– A little white lie or an oversimplification
03:12 -
– Changing the value of a free variable
07:24 -
– Investigating changes to a free variable
06:24 -
– The nonlocal keyword
04:22 -
– The global keyword
09:58 -
– Importing and the global namespace
11:44 -
– I nearly forgot
02:30 -
– import
04:23 -
– if name main
06:11 -
– An optimisation you may see in code
07:08 -
– The webbrowser module
05:49 -
– Dates and times in Python
03:25 -
– The datetime modules date class
11:13 -
– timedelta objects
08:06 -
– The datetime modules time class
15:32 -
– datetimedate and another note about importing
06:33 -
– Aware and naive times
05:54 -
– zoneinfo backport
05:00 -
– timezone objects
10:46 -
– Timezone challenge solution
13:40 -
– Some behaviour you might not expect
09:14 -
– Perform arithmetic in UTC most of the time
10:03
Bonus Including Slides
-
– Introduction to Databases
05:32 -
– Database Terminology
10:33 -
– Sqlite3 Install on Windows
08:16 -
– Sqlite3 Install on a Mac
02:15 -
– SQLite3 Install on Ubuntu Linux
02:46 -
– Introduction to SQLite
11:15 -
– More with SQL using SQLite
10:42 -
– Querying data with Sqlite
16:04 -
– Order by and Joins
13:12 -
– More complex Joins
11:44 -
– Wildcards and Views
15:17 -
– Housekeeping and the Challenge
14:15 -
– SQL in Python
13:14 -
– Connections Cursors and Transactions
18:19 -
– SQL Injection Attacks
12:27 -
– Placeholders and Parameter Substitution
09:04 -
– Exceptions
17:45 -
– Exceptions Challenge
13:51 -
– Exceptions Continued
14:49 -
– Raising Exceptions
12:40 -
– More on Exceptions
09:27 -
– Exceptions and TODO
15:54 -
– Rolling back Transactions
12:36 -
– Adding Database code to the Account Class
14:40 -
– GUI Database Editing Overview
01:33 -
– Ultimate Edition Database View
14:35 -
– Update Deposit and Withdrawal Methods
13:42 -
– Displaying Time in Different Timezones
10:55 -
– SQLite3 strftime Function
13:17 -
– Challenge
13:29 -
– Problems Storing Timezones
04:26 -
– Rolling Back Transactions
16:38 -
– Simple Database Browser
19:47 -
– Scrollbars
09:49 -
– Star Args
14:36 -
– Kwargs
09:12 -
– More on KWArgs
16:57 -
– Scrollable Listbox
12:49 -
– Populating a Listbox from a Database
10:04 -
– Show Songs from Album
06:10 -
– The DataListbox Class Code
16:35 -
– Linking our DataListBoxes
11:34 -
– Linking our DataListBoxes Continued
15:04 -
– DataListbox Challenge
17:28 -
– Bonus Downloads including slides
05:01
Earn a certificate
Add this certificate to your resume to demonstrate your skills & increase your chances of getting noticed.