
Target both beginners with no programming experience and Python programmers with 0–1 years. Deepen skills through code exercises, concurrency, and async programming, plus hands-on practice.
Choose from learning journeys, including the standard journey from chapters 1 to 15 with highlighted difficulties, quizzes, exercises, and modules, packages, unit testing, concurrency paths for first-time learners and programmers.
Explore how Python is an interpreted, high-level, dynamically typed, object oriented language that supports multi-paradigm programming and uses bytecode run by a virtual machine.
Explore two Python execution modes: ripple, an interactive read-evaluate-print loop, and script execution via .py files; learn to test ideas, write code in files, and use VS Code for development.
Set up your Python environment by installing the Python interpreter (version 3.12 or newer) and the VS Code editor with the Python extension, then run hello world.
Learn to solve course exercises in VS Code by navigating chapters and exercises, running main.py, and using pytest to verify tests and iterate across chapters.
Learn how a variable acts as a label pointing to a memory object, and how Python's dynamically typed system uses the equals operator to store integers and floats.
Master Python data types by exploring numeric, textual data, boolean, binary, and none, including integers, floats, complex, and strings, and see how type affects operations and conditions.
Master type conversion in Python by using int, float, str, and bytes, converting between numeric and string values, and understanding how addition differs for integers and strings.
Discover how literals differ from constants in Python by using fixed values assigned to variables, understanding that constants rely on convention (all caps) since Python offers no built-in enforcement.
Explore Python built-in functions that run predefined code without extra installs. Use abs, round, int, float, max, min, and consult the Functions Cheat Sheet to solve exercises.
Review variables and data types, including numeric, text, boolean, binary, and none; cover type conversion, literals, constants, built-in functions, and use a cheat sheet and documentation.
Explore Python operators, from unary and binary operations to arithmetic, assignment, relational, logical, bitwise, identity, and membership operators, with identity and membership unique to Python.
Learn Python's arithmetic operators, including addition, subtraction, multiplication, division, floor division, modulus, and exponentiation, with examples using x = 5 and y = 2 and the pow function.
Demonstrate assignment operators in Python, using the equal sign to assign values and shorthand like plus equals to update variables; bitwise operations are covered later.
Explore relational operators, or comparison operators, to compare two values and yield boolean results. Use x and y to demonstrate ==, !=, >, >=, <, and <= in control flow.
Explore how Python’s logical operators and, or, and not combine conditions to yield boolean results. See examples with x, y, and z and learn to group conditions for control flow.
Explore bitwise operators that operate on bits, including and, or, xor, not, and left or right shifts, with examples showing how to set, clear, or toggle bits in systems programming.
Explore Python identity operators using is and is not to check whether two variables reference the same object in memory, and learn to handle none and not none.
Explore Python membership operators in and not in to check if a value exists in a sequence or collection, including strings, lists, tuples, sets, and dictionaries, with practical examples.
Wrap up this section by reviewing Python's seven operator types—arithmetic, relational, logical, bitwise, assignment, identity, and membership—and how they compare values and manipulate data.
Learn about Python control flow, including sequential, conditional, and looping execution. See how code statements, conditions, and loops such as if else, for loop, and while loop shape program behavior.
Use if, elif, and else to branch Python programs, with nested conditions and boolean expressions. Apply these concepts to examples like assigning grades and solving fizzbuzz.
Explore structural pattern matching in Python, using match-case statements to test values against patterns, handle defaults, and implement a simple calculator example.
Explore Python loops as a control flow tool that repeats code until a condition ends. Compare for loops and while loops for iterating lists and counting.
Explore how to use the for loop in Python with range, including start and exclusive stop, and enumerate to access index while iterating through lists.
Master the while loop, which executes a code block while a condition is true, using increments and avoiding infinite loops by ensuring the condition eventually becomes false.
Explore break, continue, and pass statements within while loops to control flow. Use break to exit loops, continue to skip iterations, and pass as a placeholder.
Explore control flows across sequential, conditional, and looping structures, including if, else if, and elif, structural pattern matching, for and while loops, and break, continue, and pass.
Learn how to define and call functions in Python using the def keyword, specify input parameters and return values, and apply concepts like area of triangle and type hinting.
Explore the five types of function arguments in Python—keyword, default, positional, arbitrary positional arguments, and arbitrary keyword arguments—through clear examples and parameter mapping.
Explore lambda functions as anonymous, one-expression tools that take arguments, return a value, and can be assigned to a name or used on the fly, with a triangle area example.
Learn how scope works in Python by comparing global and local variables to a neighborhood, and explore using non-local and global keywords to adjust scope.
Learn how the nonlocal keyword lets a nested function modify a variable in the outer scope, as shown with x changing from 10 to 15.
Discover how the global keyword lets a function reference and modify a variable defined in the global scope, bridging local and global scopes in Python.
Lecture explains pass by object reference in Python: variables hold references to objects; mutable objects like lists can be changed in functions, while immutable ones like integers and strings cannot.
Explore recursion in Python, showing how a function calls itself with different inputs, and highlight the base case, stack overflow, and heap and stack memory layout.
Explore iterative versus recursive functions by comparing for and while loops with base cases, using factorial and sum examples to show memory and stack considerations.
Learn type hinting and type annotation to improve function signatures, specify parameters like a list of integers and an integer target, and return types for clearer, error-detecting Python code.
A recap of Python concepts from this section covers functions, the five argument types, lambda function, scope and non-local versus global, object reference passing, recursion, and type hinting.
Explore Python data structures, from primitive types to built-in structures. Learn how lists, dictionaries, sets, and tuples differ in mutability and order for efficient data access and modification.
Explore how Python lists are mutable, ordered, and heterogeneous, enabling duplicate values. Index from zero and use operations like length, append, count, pop, sort, and extend.
Explore nested lists to represent matrices with rows and columns in Python, and learn to count elements by iterating over a two dimensional list.
Learn how to replace multi-line loops with Python list comprehension to build lists quickly, including simple and conditional expressions, and even nested lists such as a 3 by 3 matrix.
Explore dictionaries as key value pair data structures that act like a lookup table; learn creating, updating, accessing, and removing items, and iterating keys, values, and items.
Explore sets in Python as unordered, mutable collections that store only keys, not values, like dictionaries, using curly brackets, disallow duplicates, and enable fast value lookup via hashing.
Master tuples as an ordered, immutable data structure that supports duplicates and heterogeneous types, learn to extract elements, and apply common operations similar to other data structures.
Explore the Python collections module, which provides specialized container types. Learn how defaultdict handles missing keys, OrderedDict preserves insertion order, Counter counts items, and deque enables double-ended queue operations.
Explore built-in data structures such as lists, dictionaries, sets, and tuples, and compare mutability and ordering. Learn the collections module with default dictionary, ordered dictionary, counter, and dequeue.
Explore strings in Python, covering indexing, slicing, and methods like lower, upper, split, and join. Understand string immutability, quotes (single, double, triple), and building strings from lists with delimiters.
Master string indexing in Python by using zero-based and negative indices to access characters from left or right, and transition to string slicing.
Explore string slicing in Python by using start, end, and optional step to extract substrings from strings and lists, including positive and negative indices and reversing strings.
Learn Python string formatting using f-strings, str.format, and percent formatting to embed variables and expressions. Discover why f-strings are cleaner and faster.
Wrap up the section by reviewing strings, indexing, slicing, and string formatting, including the three techniques and using f-strings as the default approach.
Learn how to open, read, write, and append text and binary files in Python, manage file modes, and use with statements to auto-close and prevent data loss.
Learn three Python file reading methods: read, read line, and read lines, understand cursor movement, and how to use strip to clean data when building lists.
Learn how to write data to files in Python using the write and write lines methods, and understand how opening in write mode overwrites content.
Learn the two path types in Python—absolute and relative—and how to use pathlib or os.path to read and write files across Windows, Unix, and Mac OS.
Learn how Python context managers manage resources with enter and exit steps and the with statement for automatic cleanup. Discover class-based and function-based implementations, including decorators and generators.
Learn to work with Python files, opening and closing, using context managers, reading or writing modes, and absolute or relative paths, and a class-based context manager example.
Explore Python exceptions, common built-in errors like zero division, index, key, type, value, and file not found, and learn to handle them with try and accept blocks.
Explore the else and finally blocks in Python after try and except, showing that else runs only when no exceptions occur and finally cleans up resources.
Create custom exceptions by defining user-defined classes that inherit from the built-in exception, raise them when needed, and handle with try/except for domain-specific, clearer error messages.
Learn how exception groups group multiple exceptions, raising and handling them with accept star in Python 3.11, including filtering, nesting, and compatible try-except usage.
Conclude by summarizing how exception handling works, including try, except, else, and finally block, creating and raising custom exception, and using exception groups.
Whether you're planning to work in software development, data science, data analytics, or simply want to learn programming, The Python Programmer course is designed to equip you with the expertise needed to develop Python professionally. This course is more than just theory – it's a hands-on journey through Python's core and advanced features, preparing you for real-world applications.
With 15+ chapters, you'll explore everything from basic syntax to advanced topics. You’ll solve 100 exercises, test your knowledge with 150+ MCQs, and optionally solve 20+ coding challenges. Each chapter is packed with practical exercises, code challenges, and quizzes that will test and solidify your understanding of Python.
This course comes with customised learning journeys to help you achieve your goals efficiently. We start with programming fundamentals like data types, control flows, and data-structures, and then progress to object-oriented programming and advanced topics like decorators, generators, and concurrency. You'll also gain valuable experience by applying Python to real-world problems, ensuring you're ready for any Python-related task in your career.
Whether you want to enhance your programming skills or learn about some advanced topics in Python, I've incorporated all of my knowledge and experience into this course to ensure it provides the tools and confidence you need to succeed. I hope you enjoy this course and get the best experience out of this journey!
Shehab