Python requires consistent indentation to delimit code blocks. Mixing tabs and spaces can cause “TabError: inconsistent use of tabs and spaces in indentation“.
Table of Contents
This article will explain what causes indentation errors in Python and how to fix inconsistent indentation.
What Causes Indentation Errors in Python
Python uses indentation instead of braces {}
to delimit code blocks. Code that is part of the same block needs to be indented to the same level.
For example:
if x > 0:
print("Positive")
print("Number")
The problem occurs when lines in a code block are inconsistently indented. For example:
if x > 0:
print("Positive")
print("Number") # indented with 2 spaces
Mixing tabs and spaces also causes indentation errors in Python.
Read: How to Write If-Else Statements in One Line in Python
How to Fix Inconsistent Indentation in Python
To fix indentation errors, remove inconsistent indentation and use only spaces or tabs to indent a code block.
- Use editor’s convert indentation feature to make it consistent spaces or tabs.
- Show whitespace characters to visually identify inconsistent indentation.
- Use autopep8 or tabnanny modules to automatically fix indentation.
- In IDLE, select all and untabify/tabify region to convert indentation.
- Set editor to use spaces over tabs by default.
Fixing Indentation in Code Editors
Specific steps to fix indentation in popular editors:
In VSCode:
Here are the steps to make whitespace characters visible in VS Code:
- Open the command palette by pressing
⌘+Shift+P
(on Mac) orCtrl+Shift+P
(on Windows). - Type “Toggle Render Whitespaces” in the command palette.
- Hit enter or return (↵) to run the command.
- This will toggle rendering of whitespace characters like spaces and tabs in your code editor.
- Whitespace characters will now be visible in your code.
- To toggle off whitespace rendering, repeat the same steps.
In VIM:
Here are the steps to make whitespace characters visible in Vim Editor:
- Open the file in Vim editor.
- To convert tabs to spaces, run the command:
:retab
- To make whitespace characters visible, run:
:set list
- Now whitespace characters like tabs, spaces, and end of lines will be visible.
Best Practices for Consistent Indentation
To avoid indentation errors:
- Use only spaces or only tabs, don’t mix.
- Use 4 spaces per indentation level.
- Set editor to insert 4 spaces per tab.
- Show whitespace characters.
- Use linter/formatter like autopep8 or black.
- Double-check indentation when modifying code.
Following good practices for indentation can help avoid errors in Python code.
Conclusion
Inconsistent indentation is a common cause of errors in Python. By understanding what causes it and how to fix it, we can write Python code with proper, consistent indentation. This helps avoid frustrating tab errors.