Python return statement error “ ‘return’ outside function”

Posted on

Question :

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!

Asked By: Jeff


Answer #1:

The return statement only makes sense inside functions:

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

Answer #2:

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

Answered By: buzzard51

Answer #3:

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

Answer #4:

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

Leave a Reply

Your email address will not be published.