Python return statement error " 'return' outside function"

Question:

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!

Asked By: Jeff

||

Answers:

The return statement only makes sense inside functions:

def foo():
    while True:
        return False
Answered By: Raymond Hettinger

To break a loop, use break instead of return.

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

Answered By: Jürgen Strobel

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

Answered By: buzzard51

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

Answered By: Eugene Yarmash
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.