Python indentationerror: unindent does not match any outer indentation level Solution
Srinivas Ramakrishna
Posted on October 20, 2021
ItsMyCode |
Indentation in Python is important, and it makes your code well structured and clean. Python uses indentation to define code blocks. You can use either tabs or spaces to indent the code. However, using a combination of space and tab will result in indentationerror: unindent does not match any outer indentation level.
What is Indentation in Python?
In Python, indentation is done using whitespace. In simple terms, indentation refers to adding white space before a statement. According to the PEP 8 rule, the standard way to indent the code is to use 4 spaces per indent level.
Without indentation Python will not know which code to execute next or which statement belongs to which block and will lead to IndentationError.
Tabs or Spaces?
The best practice is to use spaces as the indentation, and the same is the preferred indentation by the PEP 8 rule.
Tabs should be used solely to remain consistent with code that is already indented with tabs.
Mixing tabs and spaces is not allowed, and if you do that, Python will throw *indentationerror: unindent does not match any outer indentation level, * and the compilation of the code will fail.
Fix indentationerror: unindent does not match any outer indentation level
Let’s take few examples and find out the possible cause and solution for indentationerros in Python.
A mix of Spaces and Tabs
This would be a common scenario where the developers tend to make mistakes by mixing both spaces and tabs. Follow one approach consistently, either tab or space, to resolve the error but never use a mix of both.
*Example *
a=5
b=10
if a<b:
print("Using 4 space for indentation")
print("using tab for indentation")
Output
File "c:\Projects\Tryouts\listindexerror.py", line 6
print("using tab for indentation")
IndentationError: unexpected indent
Suppose you are using code editors like VS Code and Pycharm. In that case, it will automatically resolve the issue by converting from tabs to spaces or spaces to tab, depending on the IDE configuration settings. However, if you are using any other editor like notepad++ or sublime or using the command line for writing code, you may face this issue often, and the solution is to use one consistent approach.
Mismatch of Indent size inside a code block
If you are using any statements, loops, and functions, the code block inside should have the same indentation level. Otherwise, you wil get an IndentationError.
Example
number=6
for i in range(1,number):
print (i)
print(number)
Output
File "c:\Projects\Tryouts\listindexerror.py", line 4
print(number)
IndentationError: unexpected indent
Solution
number=6
for i in range(1,number):
print (i)
print(number)
Wrong indentation or mismatch of a code block
Often in larger projects, the number of lines will be more, leading to a mismatch of code blocks while writing loops, statements, and functions.
A typical use case is an if-else statement where due to a large no of lines the, if block and else block indentation may differ, which leads to indentationerror: unindent does not match any outer indentation level.
Example
a=5
b=6
if a< b:
print("a is smaller")
else:
print("b is smaller")
Output
File "c:\Projects\Tryouts\listindexerror.py", line 6
else:
^
IndentationError: unindent does not match any outer indentation level
Solution
a=5
b=6
if a< b:
print("a is smaller")
else:
print("b is smaller")
Output
a is smaller
The post Python indentationerror: unindent does not match any outer indentation level Solution appeared first on ItsMyCode.
Posted on October 20, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.