Learn Python Programming Masterclass

This Python For Beginners Course Teaches You The Python Language Fast. Includes Python Online Training With Python 3

  • Tim Buchalka
  • 4.57
  • (94855 reviews)
  • 72 hrs
  • 534 lectures
  • Udemy
Learn Python Programming Masterclass

What you will 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.

Your trainer

Tim Buchalka

Tim's been a professional software developer for over 35 years. During his career, he has worked for major companies such as Fujitsu, Mitsubishi, and Saab. His video courses are used to train developers in major companies such as Mercedes-Benz, Paypal, VW, Pitney Bowes, IBM, and T-Mobile just to name a few (via the Udemy for Business program). What makes Tim unique is his professional programming career - many instructors have never programmed professionally, let alone had a distinguished professional development career like Tim. Tim has trained over 812,000 students how to program, way more than a typical IT Professor at a college does in a lifetime. In fact, Tim's courses are often purchased by students struggling to get through college programming courses.

534 lessons

Easy to follow lectures and videos covering subject details.

72 hours

This course includes hours of video material. Watch on-demand, anytime, anywhere.

Certificate of Completion

You will earn a Certificate of Completion at the end of this course.

Course curriculum

  • Introduction To The Course02:02
  • Remaster in Progress02:04
  • Video Quality01:08
  • Subtitles01:20
  • How to Get Help04:46
  • Important Tip - Source Code02:55
  • Python for Windows02:19
  • Installing IntelliJ IDEA for Windows06:35
  • Python for Mac01:32
  • Install IntelliJ IDEA for Mac04:57
  • Python for Linux03:44
  • Install IntelliJ IDEA for Linux05:16
  • FAQ: Change to IntelliJ project structure screen00:29
  • Configuring IntelliJ IDEA - WINDOWS, MAC and LINUX08:11
  • Introduction02:16
  • Our First Python Program06:36
  • Printing in Python07:15
  • Printing text1 question
  • Printing the result of a calculation1 question
  • Strings in Python07:23
  • The Escape Character07:36
  • Printing tabs1 question
  • More on Escape Characters in Strings03:49
  • Variables and Types07:25
  • Python is a Strongly Typed Language04:50
  • Numeric Data Types in Python03:47
  • Numeric Operators05:33
  • Expressions05:17
  • Integer division1 question
  • Operator Precedence07:14
  • The str String Data Type05:54
  • Negative Indexing in Strings04:08
  • Slicing09:56
  • Slicing with Negative Numbers02:41
  • Using a Step in a Slice07:17
  • Slicing Backwards05:05
  • Challenge Solution and Slicing Idioms05:14
  • String Operators08:28
  • String Replacement Fields11:03
  • String Formatting10:50
  • f-strings03:38
  • Python 2 String Interpolation05:21
  • Section Summary00:59
  • The Basics of Python10 questions
  • Introduction to Blocks and Statements10:13
  • if Statements09:37
  • elif04:53
  • Using a Debugger in IntelliJ or Pycharm10:20
  • More on if, elif and else04:59
  • if, elif, and else in the Debugger04:00
  • Using if with strings1 question
  • Simple condition1 question
  • Adding a Second Guess06:18
  • Conditional Operators08:31
  • Challenge Solution02:32
  • Using and, or, in Conditions05:10
  • Simplify Chained Comparison04:39
  • Boolean Expression True and False07:48
  • Truthy Values04:30
  • in and not in06:46
  • if Challenge00:59
  • Solution to if Challenge03:22
  • for loops06:09
  • Stepping through a for loop07:44
  • for loops Extracting Values from User Input05:09
  • Extracting capitals1 question
  • Iterating Over a Range03:08
  • For loop1 question
  • More About Ranges04:25
  • For loop with step1 question
  • Nested for loops06:30
  • continue07:27
  • break06:51
  • Initialising Variables and None04:31
  • while loops06:13
  • More on while loops06:08
  • Break in a while loop03:48
  • Break1 question
  • Continue1 question
  • The Random Module and Import09:26
  • Challenge Solution05:26
  • Binary Search05:19
  • Hi Lo Game08:40
  • Pass Statement and Complete the Hi Lo Game04:16
  • Testing the Hi Lo Game06:38
  • Augmented Assignment07:42
  • augmented assignment in a loop1 question
  • PEP8: The Python Style Guide08:29
  • Refactoring Code03:31
  • else in a loop05:21
  • else in the Hi Lo Game05:06
  • Conditional Debugging04:43
  • Another else Example01:48
  • Section Summary and Challenge03:19
  • Section Challenge Solution03:50
  • Optional Extra Challenge Solution04:55
  • Changing the Condition01:47
  • Flow Control Quiz8 questions
  • Introduction to Sequence Types02:55
  • Lists04:24
  • Immutable Objects06:30
  • Mutable Objects04:39
  • Binding Multiple Names to a List03:24
  • Common Sequence Operations04:44
  • Operations on Mutable Sequences03:41
  • Appending to a List07:41
  • Mini Challenge Solution02:07
  • Iterating Over a List04:12
  • The enumerate Function04:28
  • Improving our Code08:22
  • Adding items to lists1 question
  • Removing Items from a List05:10
  • Sorting Lists04:28
  • Built-in Functions03:47
  • Sorting Things09:57
  • Case-Insensitive Sorting04:40
  • Creating Lists09:16
  • Replacing a slice05:54
  • Deleting Items from a List07:29
  • Safely removing values from a list02:53
  • Removing the High Values06:32
  • Test, Test and Test. Then Test Again!03:20
  • Testing the Program03:47
  • Removing Items from a List Backwards05:54
  • The Reversed Function05:04
  • Algorithms Performance08:58
  • Summary so far02:50
  • Nested Lists & Code Style09:13
  • Processing Nested Lists04:42
  • Solution to nospam Challenge03:36
  • Function Signatures03:35
  • print revisited06:23
  • The join Method07:44
  • The split Method09:09
  • Solution to Mini Challenge05:43
  • The Magical Adder1 question
  • Tuples04:45
  • Tuples are Immutable07:21
  • Unpacking a Tuple06:29
  • Practical uses for Unpacking Tuples04:06
  • More Unpacking06:09
  • Nested Tuples and Lists05:11
  • Solution to Unpacking Challenge03:10
  • Nesting Further03:44
  • Nested Data Structures05:37
  • Nested Indexing04:20
  • Nested indexing1 question
  • Simple Jukebox - Demonstration02:25
  • Simple Jukebox - Importing Data05:05
  • Simple Jukebox - The Code07:04
  • Constants in Python08:53
  • Finishing the Code05:37
  • Challenge00:42
  • Challenge Solution04:03
  • Summary02:47
  • Introduction02:38
  • Defining a function05:35
  • Program flow when calling a function04:25
  • Parameters and arguments04:41
  • Debugging with parameters07:59
  • Palindromes07:13
  • Palindrome challenge solution02:59
  • Sentence challenge solution05:28
  • Functions calling functions02:05
  • Returning values08:04
  • get_integer Challenge solution04:15
  • Sum even or odd numbers in a range1 question
  • Returning None02:58
  • Functions that perform actions07:58
  • Handling invalid arguments07:22
  • width challenge solution02:06
  • Default parameter values02:34
  • Keyword arguments06:21
  • Docstrings06:03
  • Writing a Docstring07:50
  • How professional is that!06:13
  • Solution to Docstrings challenge01:54
  • Fibonacci Numbers03:52
  • Writing a fibonacci function08:07
  • Function annotations and type hints07:16
  • Function annotations with default values03:32
  • Solution to banner_text Docstring challenge00:37
  • A history lesson05:34
  • Printing in colour07:50
  • Running your program like a user05:55
  • Windows Only - Installing pre-release version of colorama07:28
  • colorama module and virtual environments08:09
  • Activating a virtual environment06:01
  • A function to test our HiLo game09:59
  • Counting correct guesses04:47
  • Fizz Buzz1 question
  • Playing Fizz Buzz04:03
  • Playing Fizz Buzz Solution06:27
  • Factorial function1 question
  • *args07:38
  • colour_print with multiple arguments05:29
  • Rules for variable number of arguments02:18
  • Defining different parameter types06:46
  • Variable number of arguments1 question
  • Section Summary03:35
  • Introduction01:34
  • What is a dictionary?08:19
  • Iterating over a dictionary06:38
  • Adding items to a dictionary04:06
  • Changing values in a dictionary03:38
  • Removing items from a dictionary07:08
  • Using `in` with a dictionary07:58
  • Dictionary menu challenge solution08:32
  • Using a list with a dictionary00:24
  • Adding items to a dictionary04:59
  • Smart fridge04:23
  • What's for tea?09:19
  • Using several dictionaries together05:45
  • Checking the pantry04:24
  • Checking quantities - choosing a data structure05:19
  • Checking quantities - the code06:24
  • Solution: Create a shopping list challenge06:51
  • Wrong decisions don't have to be fatal05:42
  • The setdefault method10:04
  • Character counter1 question
  • APIs and a mobile phone demo08:07
  • The `dict` documentation08:38
  • The remaining `dict` methods04:37
  • The dict `update` method06:28
  • The dict `values` method08:06
  • References to mutable objects05:39
  • Shallow copy05:46
  • Shallow copy step-by-step03:47
  • Deep copy05:11
  • Simple deep copy solution08:38
  • Hash functions07:56
  • A really bad hashing function08:45
  • Hash tables06:57
  • Completing our simple dictionary implementation05:07
  • Hash functions and security03:49
  • hashlib, the secure hash module12:11
  • Introduction to Android-Tim02:56
  • Introduction to sets06:12
  • Python sets04:48
  • Implications of sets being unordered04:56
  • set membership08:09
  • Testing set membership is fast07:15
  • Adding items to a set05:42
  • Using a set to remove duplicate values06:21
  • Deleting items from a set08:17
  • The `discard` method05:24
  • The `remove` method10:27
  • The `pop` method04:41
  • set union05:32
  • Set union in practice04:19
  • Union update02:57
  • Advantage of the set operation methods over the operators05:03
  • Set intersection05:35
  • Set intersection in practice05:56
  • Intersection update1 question
  • Set difference02:19
  • Set difference in practice02:58
  • Difference1 question
  • Set symmetric difference06:06
  • subsets and supersets03:04
  • subsets and supersets in Python06:47
  • Practical application of subsets and supersets08:05
  • Summary06:07
  • Introduction01:43
  • Files and directories10:38
  • Introduction to the command prompt or terminal06:06
  • Paths11:43
  • Text files02:27
  • Reading from a text file10:38
  • Opening a file using `with`03:11
  • read, readline and readlines08:24
  • strip, lstrip and rstrip06:58
  • removeprefix and removesuffix in Python 3.905:12
  • Parsing data in a text file05:53
  • Working with text data06:29
  • Solution to capital city challenge05:58
  • Dictionary values with multiple keys03:23
  • Printing data to a text file04:36
  • Writing data to a text file09:04
  • File modes04:58
  • Unicode – a brief history06:33
  • Unicode in Python04:06
  • File encodings10:21
  • Serializing data using JSON07:38
  • Limitations of JSON06:08
  • Practical application - parsing JSON data07:44
  • Practical application - parsing JSON data from the internet08:03
  • The CSV format06:47
  • Reading a CSV file07:52
  • quoting in a CSV file05:38
  • Sniffer and Dialect06:41
  • CSV Dialect05:45
  • Writing a CSV file04:10
  • The csv DictReader03:20
  • Solution to DictReader challenge06:10
  • Field names with DictReader and DictWriter08:01
  • Reading and writing multiple files04:34
  • The csv DictWriter07:38
  • The `zip` function07:41
  • Reading and writing to the same text file08:17
  • Solution to parsing functions challenge07:21
  • The record_invoice function07:55
  • Using the `record_invoice` function09:15
  • seek and tell08:24
  • Improving the `record_invoice` function04:35
  • Summary of working with text files02:18
  • Working with binary files - bytes and bytearray11:05
  • Reading a bitmap file11:43
  • Little endian and big endian03:21
  • Making sense of binary data10:06
  • Reading tags in an mp3 file08:04
  • The ID3v2 specification07:18
  • The code11:40
  • Filling in the blanks10:12
  • Extracting images14:17
  • Testing our read_id3 program05:48
  • Checking the hash of a file06:03
  • Summary of working with binary files03:27
  • End of Remaster01:21
  • Introduction to the Section00:25
  • Modules and import15:03
  • The standard Python library09:14
  • WebBrowser Module22:58
  • Time and DateTime in Python17:36
  • Time (Continued) and Challenge.11:08
  • Timezones14:41
  • Check Path In Windows06:38
  • Check Path on a Mac03:19
  • FAQ: Installing packages in IntelliJ IDEA and PyCharm01:38
  • Installing the pytz module (Windows/Mac/Linux)05:37
  • Using Timezones13:21
  • More on Timezones17:22
  • Timezone Challenge11:53
  • Introduction to Tkinter12:29
  • TkInter - Pack Geometry Manager13:41
  • TkInter - Grid Geometry Manager12:58
  • Advanced GUI Example Part 117:13
  • Advanced GUI Example Part 214:43
  • Advanced GUI Example Part 318:08
  • Tkinter Challenge14:57
  • Functions in Python15:14
  • Functions Part 212:07
  • Functions Part 310:03
  • Parabola - More on Functions14:25
  • Scope in Functions13:02
  • Fix Function and Draw Circles12:52
  • Enhanced Circles and Challenge10:19
  • Blackjack Setup13:42
  • Load Cards13:45
  • Deal Cards08:50
  • Global Variables13:08
  • Global Keyword16:58
  • Test Blackjack Game12:55
  • Blackjack Challenge19:44
  • Importing Techniques20:46
  • Underscores in Python code17:25
  • Namespaces, more on Scope and Recursion16:07
  • Recursion with OS Module and Filesystem and Nonlocal keyword13:37
  • Nonlocal keyword, Free and LEGB17:07
  • Object Orientated Programming and Classes15:01
  • Instances, Constructors, Self and more15:03
  • Class Attributes10:28
  • Methods Part 114:37
  • Methods Part 214:19
  • Non Public and Mangling11:53
  • DocStrings and Raw Literals15:11
  • Album class and More on DocStrings13:42
  • Artist class and import Albums15:56
  • Load data and Write Checkfile14:42
  • Compare Files and Algorithm Flowcharts11:46
  • Implement Revised Load_Data Algorithm14:02
  • Write OOP Version12:29
  • Getters and Properties09:42
  • Remove Circular References Challenge06:02
  • Getters and Setters15:59
  • Data Attributes and Properties14:31
  • Alternate Syntax for Properties05:06
  • Inheritance15:00
  • Subclasses and Overloading14:10
  • Calling Super Methods11:16
  • Changing Behavior of Methods09:31
  • Overriding Methods16:17
  • Inheritance Challenge11:38
  • Polymorphism11:35
  • Duck Test07:06
  • Composition18:57
  • Composition Continued11:19
  • Test Code and Challenge10:37
  • Aggregation12:52
  • Introduction to Databases05:32
  • Database Terminology10:33
  • Sqlite3 Install on Windows08:16
  • Sqlite3 Install on a Mac02:14
  • SQLite3 Install on Ubuntu Linux02:46
  • Introduction to SQLite11:15
  • More with SQL using SQLite10:42
  • Querying data with Sqlite16:04
  • Order by and Joins13:11
  • More complex Joins11:44
  • Wildcards and Views15:17
  • Housekeeping and the Challenge14:15
  • SQL in Python13:14
  • Connections, Cursors and Transactions18:19
  • SQL Injection Attacks12:27
  • Placeholders and Parameter Substitution09:03
  • Exceptions17:45
  • Exceptions Challenge13:51
  • Exceptions Continued14:49
  • Raising Exceptions12:40
  • More on Exceptions09:27
  • Exceptions and TODO15:54
  • Rolling back Transactions12:36
  • Adding Database code to the Account Class14:40
  • GUI Database Editing Overview01:33
  • Ultimate Edition Database View14:35
  • Problems with Community Edition database plugin00:46
  • Update Deposit and Withdrawal Methods13:42
  • Displaying Time in Different Timezones10:54
  • SQLite3 strftime Function13:17
  • Challenge13:29
  • Problems Storing Timezones04:26
  • Rolling Back Transactions16:38
  • Simple Database Browser19:47
  • Scrollbars09:49
  • Star Args14:36
  • Kwargs09:12
  • More on KWArgs16:57
  • Scrollable Listbox12:49
  • Populating a Listbox from a Database10:04
  • Show Songs from Album06:10
  • The DataListbox Class Code16:35
  • Linking our DataListBoxes11:34
  • Linking our DataListBoxes Continued15:04
  • DataListbox Challenge17:28
  • Introduction00:43
  • Generators and Yield15:05
  • Next and Ranges06:32
  • Generator Examples - Fibonacci numbers and Calculating Pi18:30
  • The os.walk Generator16:14
  • Searching the Filesystem16:14
  • Reading Mp3 Tags19:24
  • List Comprehensions18:12
  • List Comprehensions and Side-Effects08:15
  • Challenge Solutions09:53
  • Conditional Comprehensions11:54
  • Conditional Expressions11:48
  • Challenges03:03
  • Challenge 1 Solution04:29
  • Challenge 2 Solution11:49
  • Nested Comprehensions11:50
  • Nested Comprehensions Challenge14:58
  • The timeit Module11:50
  • More on timeit12:22
  • timeit Continued and Challenge13:53
  • timeit Challenge10:50
  • Map Intro08:59
  • Map Challenge Completion07:09
  • The Filter Function08:17
  • The Reduce Function07:40
  • any and all10:42
  • Named Tuples10:52
  • any and all with Comprehensions11:18
  • Big O notation08:38
  • Big O tables and graphs07:11
  • Bubble sort14:13
  • Big O of Bubble sort, and an optimisation05:23
  • Big O of our improved Bubble sort04:47
  • Bubble sort optimisation05:36
  • Best, worst and average cases03:00
  • Big O summary02:42
  • Introduction to the section03:25
  • The turtle module10:07
  • Importing specific objects04:00
  • Namespaces and global scope06:21
  • Local scope05:40
  • Builtins07:45
  • Nested functions03:40
  • Enclosing scope03:24
  • A little white lie, or an oversimplification03:12
  • Changing the value of a free variable07:24
  • Investigating changes to a free variable06:24
  • The `nonlocal` keyword04:22
  • The `global` keyword09:58
  • Importing and the global namespace11:44
  • I nearly forgot02:30
  • import *04:23
  • if name == '__main__':06:11
  • An optimisation you may see in code07:08
  • The webbrowser module05:49
  • Dates and times in Python03:25
  • The datetime module's date class11:13
  • `timedelta` objects08:06
  • The datetime module's time class15:32
  • `datetime.date`, and another note about importing06:33
  • Aware and naive times05:54
  • zoneinfo backport05:00
  • timezone objects10:46
  • Timezone challenge solution13:40
  • Some behaviour you might not expect09:14
  • Perform arithmetic in UTC (most of the time)10:03
  • Your Programming Careers Questions Answered01:53
  • Important Videos To Watch on Youtube00:52
  • Introduction00:38
  • Getting To Know Python13:34
  • Printing text1 question
  • Printing the result of a calculation1 question
  • Understanding More About Python08:54
  • Printing tabs1 question
  • Storing Items In Variables16:28
  • Integer division1 question
  • More About Variables And Strings12:20
  • String Formatting - Displaying Numbers And Strings19:24
  • Quiz: The Basics of Python10 questions
  • Introduction00:28
  • An Introduction To Program Flow Control07:25
  • Test Conditions With If, ElIf & Else18:47
  • Using if with strings1 question
  • More Advanced If, ElIf & Else Processing15:43
  • Simple condition1 question
  • Challenge - If Then Else06:33
  • For Loops11:07
  • For loop1 question
  • Extending For Loops10:14
  • Extracting capitals1 question
  • For loop with step1 question
  • Understanding Continue, Break And Else16:29
  • Break1 question
  • Continue1 question
  • Augmented Assignment09:45
  • augmented assignment in a loop1 question
  • Challenge - Program Flow - Part 114:10
  • Challenge - Program Flow - Part 210:49
  • While Loops13:19
  • Challenge - While Loop06:42
  • Introduction00:21
  • Lists In Python11:18
  • More About Lists09:59
  • Challenge - Lists06:35
  • Understanding Iterators08:54
  • Understanding and using Ranges11:38
  • More About Ranges08:03
  • Tuples14:57
  • More On Tuples14:53
  • Lists, Ranges and Tuples9 questions
  • Introduction to the Section00:59
  • Binary Basics02:31
  • What is binary10:23
  • Hexadecimal and Octal and the Challenge17:51
  • Introduction to the Section00:30
  • Change in the ordering of dictionary keys00:45
  • Python Dictionaries16:09
  • Dictionaries Part 215:15
  • Dictionaries Part 320:57
  • Dictionaries Challenge13:06
  • More on Dictionaries16:58
  • The Second Dictionary Challenge08:41
  • Sets15:03
  • Python Sets Part 2 and Challenge18:27
  • Introduction to the Section00:21
  • Reading and writing text files18:45
  • Writing Text Files15:43
  • Appending to Files and Challenge05:37
  • Writing Binary Files Manually17:57
  • Using Pickle To Write Binary Files19:38
  • Shelve15:58
  • Manipulating Data With Shelve10:51
  • Updating With Shelve15:43
  • Shelve Challenge15:50
  • Challenge Continued09:37
  • Bonus Downloads including slides05:01
  • Spacer00:11
Online Courses

Learning Python doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.

Learn more
Books

Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of Python related books and take yourskills to the next level.

Learn more
YouTube videos

The number of high-quality and free Python video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.

Learn more