
Join the 25-day Python challenge to learn Python and build your own real world projects, starting from zero, with installation guidance for Python and a code editor.
Install python from python.org, which detects mac, windows, or linux, then verify installation and open idle to run print('hello Python'). Next, install a python code editor for easier coding.
Download and install PyCharm, then create a new Python project named First project with a selected Python version, and run a hello Python script to verify the setup.
Offer optional homework and assignments to maximize learning. Complete project tasks, recognize that any question has been solved with one Google search away, and progress faster in Python.
The resources that you will need in this course.
Practice writing precise Python syntax by using the correct print function with parentheses, avoiding curly brackets, and running code efficiently via keyboard shortcuts in PyCharm.
Learn how to use Python comments with the hash symbol to remind yourself why you wrote code, while avoiding redundant notes that clutter readability.
Learn how variables in Python assign values to names, reuse them, and update in one place, and print statements when needed, using snake_case and avoiding invalid names and reserved keywords.
Python treats constants as conventions, using all-caps names like pi and version to signal immutability. Learn how print with a comma inserts spaces and how reassignment can override constants.
Learn how f-strings embed variables in curly braces within a string prefixed with f to format output with multiple variables, reducing messy concatenation.
Learn to build a Python temperature converter with constants and an offset, convert Celsius to Fahrenheit and back, format results with f-strings, and structure code for readability.
Learn how type hints, or type annotations, in Python—a dynamically typed language—are optional tools to catch mistakes and guide editors and type checkers.
Explore Python's core data types, including strings, integers, floats, complex numbers, booleans, and none. Examine lists, tuples, sets, frozen sets, and dictionaries, plus an optional value.
Learn how integers represent whole numbers, positive or negative, with examples like age and balance, use underscores to format large numbers for readability; Python ignores them in calculations.
Learn how floats in Python represent decimal numbers, how they interact with integers, and common precision issues that rounding solves, including using round and underscores for readability.
Explore the string type, mastering quotes and escaping with backslashes. Concatenate with plus or implicit concatenation, and use triple quotes for multi-line strings.
Explore booleans in Python, where true and false represent values, convert to integers (zero and one), and use examples like isconnected and has money.
Explore how Python converts between integers, strings, and floats to enable operations across data types. See int(), str(), and float() in action and avoid type errors from nonsensical conversions.
Build a Python tax calculator that reads yearly income and tax rate as floats via input, computes tax, and formats results with dividers and currency formatting.
Explore Python lists as collection types, create integer and string lists, and use append, extend, remove, pop, and insert with type hints and mypy for static checking.
Explore Python tuples as immutable, ordered collections defined by the comma rather than parentheses; use type annotations, indexing, and concatenation, and create empty or single-element tuples.
Explore Python sets: unordered, unique elements; learn creating empty and nonempty sets, adding and removing items, and performing union, intersection, difference, and symmetric difference with in-place updates.
Learn frozensets, the immutable version of sets created with the frozen set constructor, support union, intersection, and symmetric difference, while remaining unmodifiable and unordered.
Explore dictionaries in Python, including key value pairs, accessing and updating values, handling missing keys with get, and using union, update, and delete operations.
Learn about Python's none type, how it represents no value, its use with optional types, and basic control flow handling when a value is none. Examples with dict.get and if-else.
Build a Mad Libs style story in Python by prompting the user for adjectives, nouns, and verbs, then print a playful tale formed with f-strings and triple quotes.
Explore Python's arithmetic operators for basic calculations, using integers and floats with addition, subtraction, multiplication, and division, then exponentiation, modulus, and floor division.
Master in-place assignment with equals and augmented operators in Python. Explore plus equals, minus equals, and in-place operations for sets and dictionaries.
Explore Python comparison operators, including ==, !=, >, <, >=, <=, with integers and floats, and learn operator chaining and how PyCharm simplifies it.
Explore how to use and, or, and not to combine conditional statements in Python, with practical examples using string and integer variables and boolean logic.
Explore Python identity operators is and is not, test object identity versus value, using lists A and B; contrast with the is equals to operator to avoid confusion.
Learn how Python's membership operators check for values in lists, dictionaries, sets, and strings, including keys, values, substrings, and case sensitivity.
Build a rock, paper, scissors game in Python using random, emoji symbols, and input handling, with win, lose, and tie logic, plus a forever loop option.
Learn Python control flow with if, elif, and else by checking age and name and printing access messages. Understand indentation as blocks and the use of multiple elifs, with optional else.
Master the if else shorthand in Python with single-line conditionals, including age and parity examples, while prioritizing readability over excessive compactness.
Learn Python looping with for loops and while loops, iterate a list of people and print a hello greeting, then use range to run times and underscore indicates unused values.
Explore the while loop with practical examples: counting down from three, monitoring a connection, and echoing user input, including infinite loop risks and how to exit.
Learn how break and continue control Python loops. The lecture demonstrates exiting a while true loop with break, skipping iterations with continue, and using both in for and while loops.
Learn how Python for and while loops use an else block that runs only after a full iteration without a break, including zero iterations or an empty list.
Learn to build an expense splitter that collects a total bill, adds participants, assigns percentage shares, optionally splits equally, and displays a formatted summary.
Learn how to create reusable code in Python by defining functions with def, calling them, and avoiding duplication to simplify for loops and improve reliability.
Explain how the pass keyword acts as a placeholder in Python to do nothing, with examples in functions and if-else blocks, including a connected boolean and restart modem print.
Learn how to design flexible functions with parameters and arguments, add default values, use keyword arguments, and understand inlay hints to improve readability and reuse.
Learn how to use the return keyword to obtain values from functions, specify return types with arrow notation, and handle optional or none results in Python.
Explore recursion in Python by building a self-calling connect function that retries a simulated internet connection, and illustrate with a Fibonacci example, noting recursion is memory intensive.
Create a basic Python chat bot by building a contains helper, a response function, and a loop that prompts user input, returning greetings, time, or farewell messages based on keywords.
Explore Python's args and kwargs by showing how to pass unlimited arguments with *args and convert keyword arguments into a dictionary with **kwargs, including unpacking and safe access.
Explore Python's function parameter syntax, using slash for positional-only arguments and asterisk for keyword-only arguments, to control how callers supply A and B and maintain backwards compatibility.
build a print clone in python using any type, with caps and include types options, test with custom prints, and explore extra features like counting elements.
Master error handling in Python by validating user input and converting strings to integers to safely add two numbers, preventing crashes and ensuring a robust user experience.
Master error handling in Python by using try and accept to handle value errors, zero division, and syntax issues, with interactive looping to retry input until valid.
Learn how the finally block in Python executes code after try and except blocks, enabling cleanup, preventing a memory leak and data loss during file handling.
Raise errors on purpose in Python to enforce validation, prevent negative ages, and enforce password length using value errors or generic exceptions.
Learn how to handle unexpected errors in Python using a generic exception, balancing development testing with production stability, and log issues for developers to fix.
Develop a Python number guessing game called Guess That Number using final constants and random to generate 0–100, with a bot message helper and input validation.
learn how to use modules in python by importing the built-in math module, accessing functions with dot notation, aliasing, and selective imports.
Explore star imports, which bring all from a module into scope, and the risks of function name collisions and import-order effects; use them with caution or avoid for robust scripts.
create a custom formatter.py module with a title formatter and a version constant, and use the if __name__ == '__main__' guard to run test code only when executed directly.
Learn how to install external Python packages with pip, install and use faker to generate fake data, and explore trusted sources like PyPI while reading documentation to avoid malicious code.
Develop a website status project in python using requests to normalize urls, fetch headers, and report status code, elapsed time, content type, encoding, and headers for diagnostics.
Welcome to the 25-day Python challenge! The perfect course for any inspiring dev who wants to work as a dev in the era of AI.
What is this course?
This course is designed to teach you everything you need to know to start building your very own Python projects from scratch. By following the structure of this course one day at a time, you’ll gain a strong understanding of Python’s core features and learn how to apply them to real-world problems.
How does it work?
Each day introduces a new concepts, building upon what you’ve already learned. You’ll start with the basics (variables, data types, and functions) and gradually move into more advanced topics like object-oriented programming, file handling, and asynchronous code. The lessons are short, practical, and designed for hands-on learning, so you can immediately put your new skills into action.
It's my first time programming...
No worries! This course was designed to be as beginner friendly as possible to help you get started in the world of programming. We will start with all the basics and slowly build are way up to the more advanced concepts. You will be able to start coding your own projects in no time!
Is Python a good first language?
Absolutely. Not only is it one of the most popular languages in the world, but it's also one of the easiest to learn thanks to its easy-to-use syntax and setup!