I have a Python script:
if True:
if False:
print('foo')
print('bar')
However, when I attempt to run my script, Python raises an IndentationError:
File "script.py", line 4
print('bar')
^
IndentationError: unindent does not match any outer indentation level
I kept playing around with my program, and I was able to produce four errors in total:
IndentationError: unexpected indentIndentationError: expected an indented blockTabError: inconsistent use of tabs and spaces in indentationIndentationError: unindent does not match any outer indentation level
What do these errors mean? What am I doing wrong? How can I fix my code?
Note: This is an attempt at a canonical question because I see many similar posts every month. This is not a duplicate of existing questions about unindents or unexpected indents because they only deal with one type of indentation error each, and I'm looking to cover them all in one place.
It's also possible to have logically incorrect indentation that does not cause an error message. One common form of this is attaching else: to a for or while loop rather than (as intended) the corresponding if:. See Else clause on Python while statement if you need to close questions where OP did that.