Python Indentation Rules Tutorial – Complete Guide

Welcome, coding adventurers, to the wonderfully logical world of Python indentation! In this article, we’ll be unraveling the rules for indentation in Python and understanding why it’s such a crucial part of the language.

What is Python Indentation?

Indentation in Python refers to the spaces or tabs at the beginning of a code line. Unlike many other programming languages, Python uses indentation not just as a means to beautify or organize the code but as a pivotal structural element.

Any experienced coder knows that readability can profoundly impact code understanding and troubleshooting. Python uses indentation to define its code blocks, making the code easier to read and debug. Rather than using the beginning and end statements prevalent in languages like C++ or Java, Python uses indentation. This makes Python’s syntax sleek and its learning curve less steep.

Essentially, properly indenting your code in Python is not optional; it’s necessary. Incorrect indentation can lead to errors or unintended behavior. Grasping Python’s indentation rules early on will not only help you avoid these common pitfalls but also make you a more efficient and effective Python programmer.

Armed with this understanding, let’s dive into the practical side of Python indentation.

CTA Small Image

Python Indentation Basics

Let us start by understanding how Python uses different levels of indentation. First, let’s look at a basic example:

if 5 > 2:
    print("Five is greater than two!")

In this code, the print() statement is part of the if code block. Hence, it is indented to the right. It’s important to note that Python employs four spaces (or one tab by convention) to define an indentation level. Let’s have another example:

num = 10
if num > 5:
    print("The number is greater than 5")
    if num > 7:
        print("The number is also greater than 7")
    print("End of inner if block")
print("End of main if block")

In this code, Python uses indentation levels to differentiate between nested if statements. The rule of thumb here is consistent indentation. The code within the same block must have the same indentation.

IndentationError in Python

As we mentioned earlier, incorrect indentation can lead to errors. Here’s what it looks like when you do it wrong:

if 5 > 2:
print("Five is greater than two!")

This code will throw an IndentationError because the print() statement is not indented correctly. This also holds true for excess indentation:

if 5 > 2:
    print("Five is more significant than one!")
        print("This will cause an error.")

The second print statement has one indentation level too many, resulting in an IndentationError.

Working with Loops and Functions

Indentation plays a crucial role when writing loops or defining functions in Python:

for i in range(5):

Here, the print() statement is part of the for loop, and hence it’s indented to the right.

Similarly, for a function definition:

def greet(name):
    print("Hello, " + name + ". Good morning!")

The function block’s code is indented to make it part of the definition.

By practicing and working with various code examples, you can quickly understand and master Python indentation, making your code cleaner, more efficient, and most importantly, error-free.

Indentation in Conditional Blocks

Conditional blocks in Python, which involve the if, elif, and else statements, also require precise indentation:

x = 10
if x > 5:
    print('x is greater than 5')
elif x == 5:
    print('x is equal to 5')
    print('x is less than 5')

Each of the print statements is indented to show that they’re part of their respective condition.

Nested Loops and Conditional Blocks

Indentation becomes even more important when dealing with nested loops or conditional blocks, as these add another level of indentation:

for i in range(3):
    for j in range(3):
        print(i, j)

The second loop is nested within the first, and the print statement is nested within the second loop, each requiring one more level of indentation.

Indentation in List Comprehensions

Python’s list comprehensions, an elegant way to create lists based on existing lists, also follow indentation rules:

squares = [x**2 for x in range(10)]

Although this is a single line of code, more complex comprehensions might involve multiple lines where accuracy in indentation becomes vital.

Indentation in Complex Data Structures

Python’s complex data structures, such as dictionaries or nested lists, also use indentation to enhance readability:

my_dict = {
    'name': 'John',
    'age': 30,
    'hobbies': [

Each element is indented to show it’s a part of the dictionary or the list structure.

Where to Go Next?

Now that you have a firm grasp on Python indentation, what’s the next step in your learning journey?

If you’re serious about mastering Python, consider enrolling in our Python Mini-Degree. This comprehensive collection of Python courses covers everything from coding basics to game and app development. You’ll work on exciting projects including creating games, medical diagnosis bots, and real-world apps, giving you a chance to apply the theory you learn and build an impressive portfolio of Python projects.

The Python Mini-Degree caters to beginners with zero coding experience, but also provides valuable content for more experienced learners. What’s more, we are always updating our content to keep up with industry developments.

Python is a popular and highly demanded language in various industries, including data science and game development. Completing our courses can open up exciting new career opportunities, help you land your dream job, or even assist in starting your own business.

We at Zenva firmly believe in providing you with the resources you need, regardless of where you are on your coding journey, to go from beginner to professional. So why wait? Jump into our courses now and broaden your Python horizons!


Grasping Python indentation rules and their implications is a must-have skill for any Python coder. With the fundamental understanding you’ve gained from this tutorial, you now have another crucial tool in your coding toolbox. Remember – consistency is key when it comes to Python indentation!

Immerse yourself, even more, using our comprehensive Python courses. These courses have been meticulously crafted to guide each learner from beginner to professional level, providing you with real-world projects to enhance your understanding and build an impressive portfolio. So, why wait? Embark on your Python journey with us and explore its endless possibilities!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.