
Discover Python from the basics to advanced topics, including data types, data structures, loops, and object oriented programming, plus high performance computing and Python packages like Picardy.
Discover how programming combines logical thinking with language translators, from assembly to high-level languages, and why Python enables fast, practical development across cloud and apps.
Download the latest python 3.9.x for Windows, choose custom installation, add Python and scripts to the system path, include pip, skip the launcher, and verify with python --version.
Install python3 on Linux using sudo, verify with python3 --version, and run the installation on Ubuntu; the process varies across distros like Fedora, but remains simple.
Install python on Mac with brew, then verify the version using python3 --version and confirm the installation path. Add python to your path if needed.
Install python and set up VS Code as a beginner-friendly editor that acts as an IDE. Install the Microsoft Python extension, configure the terminal, and start your first Python program.
Learn to write and run your first Python program by saving a file, using print to display hello world in the terminal.
Explore Python data types from integers and floating-point numbers to booleans, strings, and imaginary numbers, and learn to print, compare, and use escape characters like new line and tab.
Master Python variables by creating, assigning, and reusing values, printing results, and performing simple arithmetic. Learn comments, dynamic typing, and clean naming conventions using underscores.
Explore integer and float operations in Python, including add, subtract, multiply, and divide, plus power, modulus, and integer division, with notes on division by zero and type compatibility.
Master boolean operators in Python by learning and, or, xor, and not, along with comparisons and identity checks like ==, !=, is, and is not, with practical examples.
Explore strings and type conversion in Python, demonstrating string concatenation, when to convert values with int, float, and str for safe arithmetic.
Explore bitwise operators that operate on integers, including and, left shift, right shift, xor, and not, with binary representations and practical uses in Python and low-level programming.
Explore assignment operators in Python, from x = x + 1 to plus equals and other compound forms. Learn how dynamic typing allows changing a variable's type at runtime.
Learn to read keyboard input with Python's input(), print values, and treat input as strings. Convert to int or float when needed and use prompts to guide the user.
Learn how Python data structures and containers enable efficient storage and manipulation of large data sets, moving beyond individual variables to use lists and other structures for millions of inputs.
Master creating and editing lists in Python using square brackets, append, insert, and index-based access from zero. Learn to check length, access last elements with negative indices, and test membership.
Learn how to use Python sets as unordered collections of unique elements, including creation with braces, adding and removing items, avoiding duplicates, no indexing, and performing set operations.
Learn how tuples in Python hold heterogeneous data, are ordered and immutable, accessible by index, report length, support membership tests with in, and require a trailing comma for single-element tuples.
Explore Python dictionaries, a key-value data structure with unique keys and unordered values. Learn to create, update, retrieve with get, check keys and values, and enable fast lookups.
Learn to build complex data structures with lists, tuples, and dictionaries, and understand when keys can be converted to a unique number and when values act as references or copies.
Learn python slicing to extract sublists from lists using start and end indices, including from beginning and using negative indices, with end-exclusive behavior.
Explore conditional clauses in Python using if, elif, and else, with boolean conditions and indentation; apply age-based logic and avoid messy nested statements.
Master Python's ternary operator to replace two-line if-else with a one-liner that assigns a grade as passed or failed, improving readability.
Explore how Python uses None as a universal 'nothing' value to initialize variables, handle absent values, and manage conditional logic with if statements and empty strings.
Learn how Python uses data structures in if conditions, distinguishing empty versus non-empty containers and None. Understand short-circuiting with and and or and how truthiness guides control flow.
Master Python for loops to iterate over ranges and lists, use enumerate to access index and element, and explore range behavior, steps, and iterables for flexible looping.
Master the while loop by running code while a boolean condition stays true and avoid infinite loops by updating an index. Compare it to iterating over lists or ranges.
Master Python loops with break and continue to stop or skip iterations, use a simple range and input handling to manage values during iteration.
Learn to find the minimum and maximum in a list of integers with a for loop, initializing from the first element and handling negatives, then sort ascending.
Learn insertion sort in python by sorting a list in ascending order, finding the minimum, and swapping elements using index-based loops.
Master Python lists by learning core operations, including append, insert, update, remove, and pop, plus clear, extend, sort, index, and copy with attention to shallow versus deep copy.
Explore Python sets: unique elements, hashable constraints, and operations like union, intersection, difference, symmetric difference, subset and superset tests, disjointness, and shallow vs deep copies using the copy module.
Master Python dictionaries: create and update them with braces, dict(), and unpacking; use len, keys, values, get, pop, update, copy, comprehension, and understand shallow vs deep copies.
Hold multiple data types in an immutable Python structure called tuples, with or without parentheses. Unpack tuples into variables and use them as set elements or dictionary keys.
Learn to iterate through Python data structures—lists, sets, dictionaries, and tuples—using for loops and indexing, access keys and values with items(), and use pop or popitem to consume elements.
Perform benchmarks comparing lists and sets for insertion and membership tests on large datasets, showing sets excel in membership and intersections, while lists excel at end insertions.
Define reusable Python functions with def, pass lists as parameters, and call them to print the minimum value. Manage local versus global variables and use indentation for code blocks.
Learn named arguments, or keyword arguments, to pass values by parameter name for correct assignment, and understand positional arguments, required vs default parameters, and third-party libraries.
Master how default values turn parameters into optional ones in Python functions, avoid missing required positional arguments, and prevent ambiguity by requiring defaults to the right of the first parameter.
Learn how to handle dynamic parameters in Python by using *args to collect positional inputs into a tuple and **kwargs to unpack keyword arguments from a dictionary.
Learn how to use return statements in Python to output single or multiple values, control function flow, and distinguish return from break for reliable function results.
Master list, set, and dictionary comprehension to create new data structures from existing lists, avoid aliasing by using the list constructor, and filter even numbers without heavy work in comprehension.
Benchmark two ways to build a list from a large dataset, appending to a new list or using list comprehension, and show list comprehension is about two times faster.
Welcome to this Python course where you will learn to code with Python with basics and in-depth explanations.
Regardless of whether you're a complete beginner or an intermediate, you can learn how to properly code in Python. Whether you need to pass your exam, get started with programming, even create advanced distributed data processing programs, you came to the right place.
My focus for this course is also to explain the "why" while explaining the "what" and "how". Because most of the courses or documentation don't cover that! But, being a Computer Science graduate and a Software Engineer with 11+ years of experience in programming, I believe I can properly explain the "why" when we're writing code, to explain how exactly it works.
Why do you need to learn Python?
It's one of the most popular programming languages throughout the decade.
Heavily used for Data Science and Machine Learning domains.
Heavily used for Cloud Computing such as in AWS and GCP.
Massively used for Distributed Computing such as in Apache Spark and Apache Beam.
A trend has already started to write web services and APIs using Python.
Very easy to learn, write, understand and maintain the code.
Have improved performance throughout the years.
Here is a highlight of what we'll cover in this course.
Basics of Python programming (variables, loops, if-else)
Object-Oriented Programming
How to write optimized code
Error handling
Using third-party libraries
Writing multi-threaded and multi-processed programs
Introduce GUI application building with PyQt
And much more!
(This course was initially made in my native language (Sinhala) and it had quite a lot of positive feedback, and that's why I decided to create a brand new course with much more topics in English for a wider audience.)
(Sample code is attached to the last video, except a few, of each of the sections when available.)
So, why wait? Let's get started!