Search code examples
pythonindentation

IndentationError expected an indented block


Here is the code:

def myfirst_yoursecond(p,q):

    a = p.find(" ")
    b = q.find(" ")
    str_p = p[0:a]
    str_q = p[b+1:]

    if str_p == str_q:
           result = True
    else:
        result = False
    return result

Here is the error:

Traceback (most recent call last):
  File "vm_main.py", line 26, in <module>
    import main
  File "/tmp/vmuser_ssgopfskde/main.py", line 22
    result = False
         ^
IndentationError: expected an indented block

What's wrong with my code?


Solution

  • You've mixed tabs and spaces. This can lead to some confusing errors.

    I'd suggest using only tabs or only spaces for indentation.

    Using only spaces is generally the easier choice. Most editors have an option for automatically converting tabs to spaces. If your editor has this option, turn it on.


    As an aside, your code is more verbose than it needs to be. Instead of this:

    if str_p == str_q:
        result = True
    else:
        result = False
    return result
    

    Just do this:

    return str_p == str_q
    

    You also appear to have a bug on this line:

    str_q = p[b+1:]
    

    I'll leave you to figure out what the error is.