[python] Python return statement error " 'return' outside function"

When running the following code (in Python 2.7.1 on a mac with Mac OS X 10.7)

while True:
    return False

I get the following error

SyntaxError: 'return' outside function

I've carefully checked for errant tabs and/or spaces. I can confirm that the code fails with the above error when I use the recommended 4 spaces of indentation. This behavior also happens when the return is placed inside of other control statements (e.g. if, for, etc.).

Any help would be appreciated. Thanks!

This question is related to python

The answer is


The return statement only makes sense inside functions:

def foo():
    while True:
        return False

Use quit() in this context. break expects to be inside a loop, and return expects to be inside a function.


To break a loop, use break instead of return.

Or put the loop or control construct into a function, only functions can return values.


As per the documentation on the return statement, return may only occur syntactically nested in a function definition. The same is true for yield.