
Launch your journey with a beginner-friendly Python course that builds essential skills for starting programming and real-world projects. Install Python on your computer and transfer knowledge to advanced projects.
Download Python from python.org, choose the latest version, and install on Windows or Mac; verify by running idle and printing hello Bob, then preview installing PyCharm in the next video.
Download and install PyCharm Community Edition from JetBrains, then set up your first Python project. Configure the base interpreter and start with a Main.py welcome script.
Configure PyCharm with dark mode and JetBrains Mono, verify Python by running a hello script with the green arrow, and learn essential run and font shortcuts before diving into Python.
Learn Python syntax by understanding the language rules, how missing parentheses or mismatched quotes cause syntax errors, and why case sensitivity matters for functions like print.
Learn how to use comments in Python to clarify code, test alternatives, and keep code readable by using the hash symbol sparingly while understanding when to avoid excessive commentary.
Learn how variables boost code reusability in Python by replacing repeated greetings with a single variable, and master naming rules, case sensitivity, and reserved keywords.
Learn how to use constants in Python by uppercase naming to signal values like pi or version, noting Python has no true constants and values can change.
Explore Python's core data types—integers, floats, booleans, strings, lists, tuples, dictionaries, and sets—plus frozen sets and imaginary numbers, with examples of type compatibility and errors.
Explore type hints and type annotations in python, a dynamically typed language, noting that python ignores them but they clarify intended types, provide early warnings, and prevent runtime errors.
Format Python code for readability using a quick reformat shortcut. Set the keymap, such as option command plus L, and reformat by selecting all.
Master the integer data type in python with examples like age=30, money=100, and -50, and perform addition, subtraction, multiplication, and division.
This lesson introduces floats as decimal numbers in Python, using pi as 3.1415, percent as 0.50, and height as 1.72, and explains arithmetic and type annotations for int-float compatibility.
Learn to use arithmetic operators in python, including plus, minus, asterisk, slash, floor division //, exponent **, and modulus % with practical examples.
Explore Python's comparison operators that yield booleans, with a=1, b=5, c=10, d=10, covering equality, not equal, greater than, less than, greater than or equal, less than or equal, and chaining.
Learn how to use Python logical operators to chain comparisons with and, or, and not. See how these operators produce true or false results and improve readability of boolean expressions.
Explore Python strings by mastering quotation marks and escaping with backslashes. Learn string concatenation and multi-line strings with triple quotes, and decide when to use single or double quotes.
Master type conversion in Python by turning text to integers or floats for arithmetic, converting integers to strings for concatenation, and recognizing value errors when a value isn't compatible.
Learn to build a simple adder in Python that adds two numbers using user input, converting inputs to integers, and printing the result.
Learn how booleans represent true and false in Python, including their role as 1 and 0 constants, with examples like isconnected and simple true plus true calculations.
Explore lists in Python by creating a list with square brackets, zero-based indexing, and using append, remove, insert, and clear operations.
Understand how tuples in Python are immutable sequences defined by a comma, not parentheses, used for coordinates; learn about single-element tuples, type annotations by position, and list vs tuple use.
Learn how Python sets store unique, unordered values, cannot be indexed, and support mutation with add, remove, pop, and clear, created by curly braces or the set constructor.
Discover frozensets, an immutable, memory-efficient variant of sets that removes duplicates; create one with the frozenset constructor and know you cannot add elements.
Learn how to use Python dictionaries to store data as key-value pairs, access elements by key, nest dictionaries for weather data, and perform add, modify, delete, and clear operations.
Learn the none type in Python, which represents nothing, and how the get method returns none instead of errors. See how optionals and union types use none.
Create a Mad Libs Python project that builds a story from user inputs (name, noun, verb, numbers) using f-strings and a formatted multi-line string, printing the final tale.
Explore Python's if, elif, and else statements to make decisions, using indentation to define blocks and practical examples like age checks for club entry and weather conditions.
Learn how to use shorthand if-else in Python to simplify boolean expressions while prioritizing readability; compare one-line ternaries with block-style code and understand when to use each.
Master Python for loops to iterate over any iterable using range, print text with a formatted string, and apply conditional logic inside each iteration.
Master infinite while loops in Python and replace finite for loops with practical exit conditions. Explore real-world examples like handling a connection with time.sleep and building a simple chat bot.
Learn how Python uses break and continue to control loops, exiting early and skipping iterations in while and for loops, with a practical calculator example.
Learn how for and while loops use an else block as a success block, which runs only after complete iteration unless a break or error stops the loop.
Develop a rock, paper, scissors game in Python with a basic artificial intelligence, using a moves dictionary, random choices, and a while loop for interactive play.
Learn to create reusable Python functions with def and a name, call them to run code from a single place and update across the program.
Learn how to use Python's pass keyword and ellipsis as placeholders to define functions and code blocks without implementing full functionality, preventing indentation errors and maintaining consistency.
Learn to define functions with parameters and arguments, using def and f strings to greet by name or language, and manage positional and keyword arguments with defaults.
Learn to define and use return values in Python, annotate return types, and return integers or strings with examples like get_length and make_upper, including None as a default return.
Practice recursion in Python by contrasting infinite recursive calls with a controlled example that retries internet connection using increasing delays and time.sleep, guarding against maximum recursion depth.
Explore Python args and kwargs, learning how to absorb arbitrary positional arguments into a tuple and keyword arguments into a dictionary, with practical function examples and print behavior.
Learn how Python signatures use a slash to force parameters before it to be positional and an asterisk to require keyword arguments, including positional and keyword forms.
Build a simple Python chat bot project that uses a get response function, lowercasing input, if-else logic, time handling with datetime.now, and a while loop to chat and exit.
Learn how to safely handle user input and exceptions in Python by building a simple calculator that converts input to integers, guards against non-numeric values, and continues after errors.
Learn to use PyCharm's refactor rename to update functions and variables across a project with one edit, and set a shortcut like shift command plus R to rename all occurrences.
Learn to handle runtime errors in Python using try and accept blocks, catch specific exceptions like zero division error and value error, and build robust error handling.
Explore Python exception handling beyond try and except, using else as a success listener and finally to guarantee execution, with value errors, zero division, and user input scenarios.
raise enables manually triggering exceptions in Python with the raise keyword and specific error types like ValueError to validate input, return booleans, and print helpful messages.
Learn to implement a Python exception handler that uses try and except to handle invalid user input, convert to float, and show personalized error messages instead of crashing.
Create a Python letters-only project that uses exceptions and the string module. Validate input with a main loop, raise a value error for non letters, and print clear feedback.
Learn how Python modules package code in a single file, how to create and import custom modules, and different import styles like alias, selective import, and star import.
Explain why star imports are dangerous in Python, showing how conflicting names and import order cause funky behavior, and encourage avoiding star imports in more professional or complex scripts.
Learn to use the main entry point with if __name__ == '__main__' to test modules, prevent code from running on import, and simulate an internet connection in Python.
Learn how to create your own Python package from a directory, add __init__.py, organize modules like internet and website, and import them with from my_package import website, internet.
Differentiate between a library, a package, and a module in Python, using email library and Mime package as examples; learn to organize code by libraries that contain packages and modules.
Build a Python website status checker using the requests library to fetch a URL, return a response object, and display status, links, encoding, and redirect information.
Discover truthy and falsy values in Python, using non-zero numbers and non-empty containers as true, while empty containers and none evaluate as false, with practical boolean checks.
Demonstrates how to compare floats in Python using the is close function with absolute and relative tolerances. Explains why floats are imprecise and how 1% scaling makes comparisons reliable.
Explore Python scopes by comparing a global number to a local one inside a function, showing shadowing prevents changing the outer value and how inner assignments stay local.
Learn how scopes work in Python, distinguishing outer and inner scopes, and use the global keyword to modify outer variables while avoiding shadowing.
Learn how the non-local keyword lets inner functions modify variables in an outer scope, contrasting with global, and reference multiple variables like name and value.
Explore list comprehensions in Python, learn how to replace loops with single-line expressions to double numbers, filter names, and extract even numbers using concise syntax.
Master Python slicing to extract sections from lists, tuples, or strings using index ranges, exclusive bounds, negative steps, and reversals.
Learn why you should not modify a list while iterating in Python, and collect changes in a temporary list to transfer them after the loop.
Build a Python grocery list app with a menu to add, remove, list items, and exit, featuring a welcome message, input validation, and robust item management.
Explore object oriented programming in python, focusing on practical use and why it can be an ideal approach when programming, including learning how to use the class keyword.
Define a reusable car class in Python as a blueprint with brand and wheels, using an initializer, and add methods to turn on, drive, turn off, and describe each car.
Define the current instance with self to link object data to each fruit, initialize name and grams, and illustrate apples and bananas as separate objects.
Explore dunder methods, including init, length, and add, to customize class behavior. Learn to define and use these magic methods with a book class to support length and plus operations.
Learn how the __eq__ dunder method enables object equality in Python by defining custom comparison for a Car class, switching from memory-address checks to comparing IDs or dictionaries.
Explore abstract classes as blueprints for derived classes and the role of abstract methods via the ABC module. Implement turn on and turn off, raising a not implemented error.
Learn how name mangling in Python uses double leading underscores to encapsulate data and prevent attribute clashes in inheritance, with examples of access inside and outside the class.
Are you ready to become a true Python programmer and learn some of the most demanded skills on the market in programming for 2026?
Who is this course for?
This course is for anyone who wants to gain a very practical understanding of the Python language, so that you can take advantage of one of the most important tools of the century. Whether your are a beginner, or have experience with code, I will start from the very basics, and build up to the most important and advanced aspects of the Python programming language.
Why should you pick this course and not the others?
There are thousands of Python courses on the internet, so why should you pick this one? Well, to put it simply, I believe that I teach programming concepts in a far more effective way than a majority of the courses on the Internet. I make sure to only teach what's essential and needed, so that you don't waste time with code that you will never see or use in your entire career. I'm a self-taught professional and will teach you how you can be the same!
30 Day Money-Back Guarantee
During the first 30 days of this course you can opt in to get your money back. Whether it's because you feel that this course is not right for you, or changed your mind about learning Python, you can easily request a refund which will be handled kindly by Udemy.