
Learn why we study Python: cross-platform, with a simple, clean syntax, an interpreted language with CPython, and support for procedural, object-oriented, and functional programming, plus fast libraries and frameworks.
Explore Python's usage across web applications, desktop based software, data analytics, data science, data warehouse, big data, AI and machine learning, and automation and scripting for DevOps and networking.
Learn about Python version 3.12, the current stable release, and how to download and install it from python.org on Windows, macOS, and Linux.
Explore how Python variables act as named objects in memory, with a name and a value, and a data type, illustrated by x = 10.
Learn the difference between data type and variable in Python, with examples of normal types like integer, float, string, booleans, none type and collection data types.
Learn how to declare variables in Python, assign values like x=10 and y=15, perform arithmetic, print results, and determine data types using type().
Explore Python's numeric data types—integers, floats, and complex numbers—learn how to print, check types with type(), and perform simple operations on variables x and y.
Learn how to cast values between data types in Python, converting integers, floats, and strings using explicit functions, and handling errors when adding strings to numbers.
Explore the string data type in Python, using single-line and triple-quoted strings for multi-line text, with practical examples like printing a hello world string.
Explore Python strings, including single and multi-line types, and learn indexing to slice and print specific characters. Practice unpacking with a star and customizing separators.
Learn essential Python string functions, including lower, upper, capitalize, and title; replace characters; and split and join strings, plus find and index techniques.
Explore string concatenation and string format in Python by joining strings with the plus operator and using f-strings to insert variable values into messages.
Understand boolean data types with true and false, practice logical operations using and, or, not, and learn python's case sensitivity requiring capitalized True and False.
Learn how to perform arithmetic operations in Python, including addition, subtraction, multiplication, division, modulus, and exponentiation, using two variables x and y and printing results.
Explore Python comparison operations, including equal and not equal, and relational operators, and learn how to use them with if conditions to print results, distinguishing them from assignment.
Explore assignment operations in Python, including the difference between = and ==, and how in place operators like +=, -=, *=, /=, //=, %=, and **= modify variables.
Explore Python collections, built-in data structures that hold multiple values: list, tuple, set, and dictionary; note arrays and ranges via numpy or the array module.
Discover how Python lists function as an ordered, mutable collection that stores sequences of numbers, names, or values, with support for duplicates and various data types.
Explore Python lists' core properties: they are ordered, mutable, and allow duplicates. Learn how elements are indexed, replaced by assignment, and how printing preserves the given order.
Access list elements by zero-based index and loop through lists, and understand packing versus unpacking. Sort, join, and copy lists, noting that copying creates independent lists.
Learn list comprehension, a shorter way to create a list from an existing one with a condition. Use for in range and optional if to filter even or odd numbers.
Learn to define and use tuples in Python, an ordered, immutable collection that allows duplicates. Create tuples with parentheses or the tuple constructor, and observe that items cannot be reassigned.
Learn how to access tuple items by index in python, print individual elements, loop through the tuple, and unpack elements with an asterisk to display them without brackets or quotes.
Convert tuples to lists to update or remove elements, because tuples are immutable. Learn to join tuples via concatenation and manage updates by temporary list conversion.
Explore packing and unpacking in Python tuples, using the asterisk for rest, assign each element to variables, and print specific items like names and grades.
Explore the tuple count and index methods in Python, showing how count tallies occurrences and how index locates element positions (Nick at 0, John at 1, Johnson at 2).
Define Python sets with curly braces or the set() constructor. Sets are unordered, immutable, and do not allow duplicates; they have no index, so items can't be reassigned.
Access set items without indexing, add elements, and update sets with union, then use remove, discard, and pop for element removal, noting error behavior.
Explore Python set manipulation by using del to delete sets, clear to empty them, and perform union and intersection to combine and find common elements, with practical print examples.
Learn to create Python dictionaries with curly braces or the dict constructor, storing key-value pairs; they are ordered, mutable, with unique keys.
Explore how to access dictionary items in Python by iterating, printing keys and values, and using methods like items, keys, values, and get.
Learn to add, update, and remove dictionary items, using pop and del, and copy dictionaries to create independent duplicates where changes to the copy don’t affect the original.
Master nested dictionaries in Python by organizing multiple phone numbers under a sub-dictionary for each person, and print nested data using isinstance checks and iterative keys.
Explain how Python uses if, elif, and else statements to decide pass or fail based on a score, with examples like 50, 51, and retake scenarios.
Master nested if statements by comparing a score to a base threshold, determine pass or fail, and check even or odd using score divided by two with remainder.
Master the Python for loop by iterating over lists, dictionaries, sets, and tuples, using for x in list syntax to print each element and avoid repetitive code.
Explore Python loops by comparing for and while constructs, using range, lists, and len to print elements and count dynamically, with practical, hands-on examples.
Demonstrate nested for loops in Python to print items from a nested list with two sublists, columns and rows, like Jack and Smith, using a parent and child loop.
Learn how Python functions are blocks of reusable code defined with def, executed when called, and used to perform tasks such as adding numbers, distinct from object oriented concepts.
Explore how print, return, and pass work in Python functions, comparing direct console output with returning values, using stored variables, and handling empty function bodies.
Follow python naming conventions for functions by using lowercase names separated by underscores, ensuring readability through snake_case, as outlined in pip eight and the Python documentation.
Explore the difference between parameters and arguments in Python functions, using examples with x and y to calculate a sum, and distinguish positional and keyword arguments.
Explore how positional arguments assign values by index, contrast them with keyword arguments, and cover arbitrary positional arguments and positional-only parameters using a forward slash.
Explore how keyword arguments in Python pass data as key-value pairs, contrast them with positional arguments, and use default values, arbitrary keyword arguments (**kwargs), and keyword-only parameters.
Learn how function annotations in Python clarify parameter data types to improve readability, provide type hints, and aid documentation, while not altering runtime behavior.
Explore recursion in python by learning how a function calls itself, illustrated with factorial examples and base cases like zero returning one.
A lambda function in Python is a small anonymous function defined using the lambda keyword. It can take any number of arguments but can only have one expression.
basic syntax of a lambda function:
lambda arguments: expression
Explore how a decorator, a function that takes another function as an argument, can modify behavior and enable logging, authentication, caching, and improved readability and maintainability.
Learn how a function decorator wraps another function with a wrapper to enable future enhancements without modifying the original code, improving readability and maintainability.
Explore iterators and generators in Python, using iter and next to traverse sequences (lists, tuples, dictionaries, and sets) and explain how generators extend iterators to generate sequences.
Explore how generators differ from iterators in Python, using yield instead of return to produce a sequence, iterate with a for loop, and gain memory-efficient, on-demand values.
Explore object oriented programming by defining objects and classes, with classes as a blueprint and objects as instances that combine data and code to achieve goals.
Practical exploration of object oriented programming in Python, comparing procedural and functional styles, and building foundations with objects, classes, and core OOP concepts: inheritance, polymorphism, encapsulation, and abstraction.
Learn how to define a class as a blueprint, create objects as instances, and access attributes and methods using self, with examples of color and a display function.
Learn how class names follow the Pascal case convention, using capitalized words, while functions use snake_case; this naming rule boosts readability, maintainability, and reusability of Python code.
Learn how the init function acts as a constructor to initialize a Python object by receiving arguments and assigning them to self.n1 and self.n2 for use in operations.
Explore inheritance in Python: define a child class that inherits functions from a parent class, reuse constructors and methods, and understand subclassing, superclasses, and method calls.
Explore polymorphism through method overriding in Python. Use an animal sound example where dog and cat override the base sound to print woof and meow.
clarifies that Python does not support function overloading within a class and that only method overriding is used; redefining the same function results in the last definition being used.
Explore encapsulation in object oriented programming, focusing on data hiding, modularity, access control, security, and maintainability, and learn how public, protected, and private modifiers regulate access.
Explore encapsulation by using a staff class with public, protected, and private members, showing how access modifiers govern visibility across superclass, subclass, and external code.
Explore abstraction in object-oriented design by distinguishing abstract and concrete classes, using abstract base classes, and learn how hiding complexity keeps end users focused on essential interfaces.
Explore abstraction in Python by defining abstract classes and abstract methods with the ABC module, then implement concrete classes and methods that reveal how to start a car engine.
Learn how Python handles exceptions with try, except, else, and finally, and how to display friendly messages for errors like not defined variables.
Explore how try, except, else, and finally control Python's exception handling, showing how code runs when errors occur or succeed, and how finally always executes.
Learn how to handle zero division errors and other common Python exceptions: name error, type error, and module not found, using try, except, else, and finally blocks.
Explore type errors from mismatched data types, like strings and integers, and handle them with try/except blocks and meaningful messages; learn about module not found errors too.
Explore multi-threading and multiprocessing in Python, defining processes and threads, and contrast single-process multi-threading with multi-process execution to understand memory and resource isolation.
Explore multiprocessing versus multithreading with an example where four processes run in parallel using separate memory, cpu, and disk resources; compare this to threading within a single process.
practice multithreading in Python with the threading module to run multiple threads concurrently, sharing memory and reducing timing compared to multiprocessing.
Welcome to my 100% hands-on Python course, designed to equip you with the fundamental skills and knowledge needed to become proficient in Python programming. Throughout this course, you'll embark on an exciting journey through the world of Python, starting with the basics and gradually delving into more advanced topics.
We'll kick off with an introduction to Python, exploring its history, features, and the reasons behind its widespread popularity. From there, we'll dive into the essentials of programming, covering topics such as variables, data types, loops, conditions, and functions. Through practical exercises and real-world examples, you'll gain hands-on experience with writing Python code and solving problems.
As you progress, we'll dive deeper into Python's advanced features, including lambda functions, iterators, generators, decorators, and more. You'll learn how to harness the power of these tools to write cleaner, more efficient code and tackle complex programming tasks with ease.
But that's not all! This course goes beyond the basics to explore key concepts of object-oriented programming (OOP), such as inheritance, polymorphism, abstraction, and encapsulation. You'll discover how to create and manipulate objects, design robust class hierarchies, and leverage the principles of OOP to build scalable, maintainable software solutions.
Additionally, we'll cover essential topics like multithreading, allowing you to write concurrent programs that can perform multiple tasks simultaneously, and exception handling, enabling you to gracefully handle errors and unexpected situations in your code.